井字棋大师2.0

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 0 总提交人数: 0

题目介绍

建党一百年将至,我们党历经困难险阻,脚踏实地,从小到大,从弱到强,创造了一个又一个新的辉煌。我们这一代青年既要登高望远,又要脚踏实地,要想成就一件大事业,必须从小事做起,才能具备攻克难题的能力。

假设井字棋对弈双方棋子的标识符为XO,规定X方为先手,现给定一个井字棋棋局,若对弈双方在此棋局之后均采用最优策略行棋,输出该棋局评估函数 $e(p)$ 的值。

这次的评估函数有了新的定义:

  • 如果经过若干步X方获胜,则 $e(p)=($最终X获胜的局面上空格数$+1)$
  • 如果经过若干步O方获胜,则 $e(p)=-($最终O获胜的局面上空格数$+1)$
  • 如果经过若干步后双方打平,则 $e(p)=0$

井字棋1

例如上图的棋局,X方已经获胜,同时棋盘上有两个空格,所以评估函数的值为 $e(p)=2+1=3$

与$1.0$版不同的是,评估函数不再仅与当前局面有关,而是同时与最终局面有关,具体请参照样例解释。

输入格式

对于每一组数据,每组数据共四行。

第一行一个正整数 $\in\{1,2\}$,$1$ 表示轮到X方落子,$2$ 表示轮到O方落子。(如果对局已经结束也会给出该数据)

接下来三行,为一个 $3\times 3$ 的数组,代表某个棋局。(保证所给棋局合法)

其中,棋盘上若是 $0$ 则代表此处未落子,是 $1$ 则代表X棋,是 $2$ 则代表O棋。

本题有多组数据输入,请用EOF判定结束。

输出格式

对于每一组数据,输出棋局评估函数的值。

每组数据之间的输出用一个空行分隔。

输入样例

1
1 1 0
2 2 2
1 0 0

2
1 2 0
0 1 0
0 0 0

1
0 0 0
0 0 0
0 0 0

输出样例

-4

3

0

样例解释

第一组数据,当前棋局为:

井字棋2

对局已经结束,O方三子连成一线,$e(p)=-(3+1)=-4$

第二组数据,当前棋局为:

井字棋3

轮到O方落字,若双方在此之后均采取最佳策略,则会达到题目介绍中的局面,$e(p)=3$

第三组数据:

对局未开始,若双方均采取最佳策略行棋,则一定达成平局,$e(p)=0$

HINT

当你完成这道题后,就可以自己做个井字棋小程序啦!

Author:WQH

相关推荐