{if(chess[6] ==1)return1+remain();elsereturn- (1+remain()); }if(chess[0] == chess[4] && chess[4] == chess[8] && chess[0] !=0) {if(chess[0] ==1)return1+remain();elsereturn- (1+remain()); }if(chess[2] == chess[4] && chess[4] == chess[6] && chess[2] !=...
}returnans; }boolrow3(intx,intnum){//判断每个横行for(inti =1; i <=3; i++) {if(mp[x][i] != num)return0; }return1; }boolcol3(inty,intnum){for(inti =1; i <=3; i++) {if(mp[i][y] != num)return0; }return1; }boolalicewin(){//判断alice是否能赢for(inti =1; i...
int mp[5][5]; int countblank() {//统计空格 int ans = 0; for(int i = 1; i <= 3; i++) { for(int j = 1; j <= 3; j++) { if(mp[i][j] == 0) ans++; } } return ans; } bool row3(int x, int num) {//判断每个横行 for(int i = 1; i <= 3; i++) { if...
1#include<bits/stdc++.h>2usingnamespacestd;3#definepii pair<int,int>4map<string,int>f;5intblank(stringstr){intres=0;for(charc:str)res+=(c=='0');returnres; }6intcheck(stringstr){7for(inti=0;i<3;++i){8if(str[i*3]=='1'&&str[i*3+1]=='1'&&str[i*3+2]=='1')return...
1#include<bits/stdc++.h>2usingnamespacestd;3typedeflonglongll;4constintN=1e5+10,inf=0x3f3f3f3f,mod=998244353;5inta[4][4];6boolwin(intf) {7for(inti=1; i<=3; ++i) {8if(a[i][1]==f&&a[i][2]==f&&a[i][3]==f)return1;9if(a[1][i]==f&&a[2][i]==f&&a[3][i...
CCF-CSP201803-4-棋局评估 问题描述 Alice和Bob正在玩井字棋游戏。 井字棋游戏的规则很简单:两人轮流往3*3的棋盘中放棋子,Alice放的是“X”,Bob放的是“O”,Alice执先。当同一种棋子占据一行、一列或一条对角线的三个格子时,游戏结束,该种棋子的持有者获胜。当棋盘被填满的时候,游戏结束,双方平手。 Alice...
CCF CSP 201803-4 棋局评估 思路: 1.基本思想就是暴力,枚举每一种可能情况,利用决策树进行对抗搜索; 2.Alice搜索时,选取所有返回值里最大的那个,Bob相反; 3.也可以用记忆化搜索进行优化,我用的string保存棋盘,用unordered_map<string,int>保存每一次结果即可;...