题意:给定一个四子棋的棋盘,问是否存在先手必胜的策略
思路:极大极小算法。暴力搜索会T,这里加上剪枝,当发现 a>=b 时可以直接返回,这里a>=b证明找到一种合理策略,最后再用全局变量保存一下结果就可以。
#include<iostream>
#include<cstdio>
#include<Cstring>
#define debug puts("%%%%%")
#define read(x) scanf("%d",&x)
using namespace std;
char ma[5][5];
int ax,ay;
int judge() {
int xa=0,xb=0,ya=0,yb=0;
for(int i=0;i<4;i++) {
int ra=0,rb=0,ca=0,cb=0;
if(ma[i][i]=='x')xa+=1;
else if(ma[i][i]=='o')xb+=1;
if(ma[i][3-i]=='x')ya+=1;
else if(ma[i][3-i]=='o')yb+=1;
for(int j=0;j<4;j++) {
if(ma[i][j]=='x') ra+=1;