[科大国创杯小学组 2024] 博弈

Luogu
IDLGB4254
Time1000ms
Memory512MB
DifficultyP4
搜索2024安徽科创活动小学活动科大国创杯
小可可和小聪聪最近在玩黑白棋! 在介绍本问题之前,我们先介绍黑白棋规则: 1. 游戏使用标准的 $8 \times 8$ 棋盘,上面初始时有四枚棋子:两枚黑色棋子和两枚白色棋子,按照对角线交叉排列。 2. 游戏开始时,黑方先行。 3. 玩家的目标是通过翻转对手的棋子,将棋盘上的大多数格子占为己有。 4. 每一步,玩家必须将自己的棋子放在一个合法的位置上。合法的位置必须满足以下条件: - 新放置的棋子必须与棋盘上已有的同色棋子在一条直线(水平、垂直或对角线)上夹住对方的一串棋子(夹住的意思是,在夹住的一端是己方的棋子,另一端是对方的棋子)。 - 在夹住对方棋子的同时,所有被夹住的对方棋子都会被翻转成己方颜色。 5. 如果某一方无法合法落子,则该回合轮到对方继续行动。 6. 游戏继续进行,直到棋盘被填满或双方都无法合法落子。 7. 游戏结束时,棋盘上棋子数较多的一方获胜。如果双方棋子数相同,则为平局。 给定一个 $n \times n$ 棋盘上的黑白棋残局,对于接下来所有的可能局面——也就是说,黑方白方轮流行棋,白方先行,走到双方都无法行棋,在所有的可能状态中,最终黑方获胜的有多少种,白方获胜的有多少种,平局有多少种。 在本题中,我们定义残局为最多有不超过 $10$ 个未被放入棋子的格子。 需要注意的是:我们给出的棋盘不一定能够从一个合法的开局得到。你无需关心当前棋盘局面是如何形成的——即便它并不连通。 ## Input 第一行,一个整数 $n$,表示这个棋盘的大小是 $n \times n$。 接下来 $n$ 行,每行 $n$ 个整数,表示棋盘。如果这个数是 $0$,表示这里是白子,如果这个数是 $1$,表示这里是黑子,如果这个数是 $-1$,表示这里是空的。 ## Output 一行,三个整数,黑方胜利的状态数,白方胜利的状态数,平局的状态数。 [samples] ## Note ### 数据范围 - 数据点 $1 \sim 6$,$1 \leq n \leq 3$,空格子数不超过 $4$。 - 数据点 $7 \sim 12$,$1 \leq n \leq 4$,空格子数不超过 $5$。 - 数据点 $13 \sim 18$,$1 \leq n \leq 4$,空格子数不超过 $10$。 - 数据点 $19 \sim 23$,$1 \leq n \leq 5$,空格子数不超过 $5$。 - 数据点 $24 \sim 25$,$1 \leq n \leq 5$,空格子数不超过 $10$。
Samples
Input #1
3
-1 0 1
0 1 0
1 0 -1
Output #1
2 0 0
Input #2
4
-1 -1 -1 -1
-1 0 1 0
-1 1 0 1
-1 -1 -1 -1
Output #2
1813 2494 519
API Response (JSON)
{
  "problem": {
    "name": "[科大国创杯小学组 2024] 博弈",
    "description": {
      "content": "小可可和小聪聪最近在玩黑白棋! 在介绍本问题之前,我们先介绍黑白棋规则: 1. 游戏使用标准的 $8 \\times 8$ 棋盘,上面初始时有四枚棋子:两枚黑色棋子和两枚白色棋子,按照对角线交叉排列。 2. 游戏开始时,黑方先行。 3. 玩家的目标是通过翻转对手的棋子,将棋盘上的大多数格子占为己有。 4. 每一步,玩家必须将自己的棋子放在一个合法的位置上。合法的位置必须满足以下条件:   ",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P4"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB4254"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "小可可和小聪聪最近在玩黑白棋!\n\n在介绍本问题之前,我们先介绍黑白棋规则:\n\n1. 游戏使用标准的 $8 \\times 8$ 棋盘,上面初始时有四枚棋子:两枚黑色棋子和两枚白色棋子,按照对角线交叉排列。\n\n2. 游戏开始时,黑方先行。\n\n3. 玩家的目标是通过翻转对手的棋子,将棋盘上的大多数格子占为己有。\n\n4. 每一步,玩家必须将自己的棋子放在一个合法的位置上。合法的位置必须满足以下条件:\n  ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments