代码:

#include <bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
using namespace std;
int g[4][4];bool read()
{memset(g, 0, sizeof(g));bool flag = false;for(int i = 1; i <= 3; ++i)for(int j = 1; j <= 3; ++j){cin >> g[i][j];if(g[i][j])flag = true;}return flag;
}int judge() //返回当前局面的胜者的编号
{for(int i = 1; i <= 3; ++i){if(g[i][1] != 0 && g[i][1] == g[i][2] && g[i][2] == g[i][3])return g[i][1];if(g[1][i] != 0 && g[1][i] == g[2][i] && g[2][i] == g[3][i])return g[1][i];}if(g[2][2] != 0 && g[1][1] == g[2][2] && g[2][2] == g[3][3])return g[2][2];if(g[2][2] != 0 && g[1][3] == g[2][2] && g[2][2] == g[3][1])return g[2][2];return 0;
}int dfs(int s) //s记录当前下棋者的编号
{int sum = 0, win = judge();for(int i = 1; i <= 3; ++i)for(int j = 1; j <= 3; ++j)if(!g[i][j])sum++; //可走位置的数量if(win == 1) return sum+1; //1胜,返回1的得分if(win == 2)return -(sum+1); //2胜,返回2的得分if(!sum)         return 0; //无位置可走,此时平局,两人得分都为0int maxn = -INF, minn = INF;for(int i = 1; i <= 3; ++i)for(int j = 1; j <= 3; ++j)if(!g[i][j]){g[i][j] = s; //s将棋下在这里if(s == 1) //1走完,轮到2下maxn = max(maxn, dfs(2)); //得到最优策略下的得分if(s == 2)minn = min(minn, dfs(1));g[i][j] = 0; //回溯}if(s == 1)return maxn;if(s == 2)return minn;
}void solve()
{if(!read()){cout << 0 << '\n'; //当棋盘为空时,特判return;}elsecout << dfs(1) << '\n' ; //1先走棋
}int main()
{int t;cin >> t;while(t--)solve();return 0;
}

CCF历年题目201803-4 棋局评估相关推荐

  1. CCF历年题目201703-4 地铁修建

    代码: #include<queue> #include<cstdio> using namespace std; const int MAXN = 100005; int n ...

  2. CCF 201803 跳一跳 碰撞的小球 url映射 棋局评估

    试题编号: 201803-1 试题名称: 跳一跳 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱. 简化后的跳一跳规则如下: ...

  3. CCF计算机软件能力认证试题练习:201803-4 棋局评估

    棋局评估 来源:CCF 标签: 参考资料: 相似题目: 题目 Alice和Bob正在玩井字棋游戏. 井字棋游戏的规则很简单:两人轮流往3*3的棋盘中放棋子,Alice放的是"X", ...

  4. CCF 201803-4 棋局评估(博弈论)

    题目来源:http://118.190.20.162/view.page?gpid=T70 问题描述 试题编号: 201803-4 试题名称: 棋局评估 时间限制: 1.0s 内存限制: 256.0M ...

  5. CCF历年真题整理【已更新至202104】

    说明:本文持续更新,若长时间未更新,请评论催催我. 以下题目均来自cspro.org,点击进入测试页面,侵删歉. 部分题目我已经解决,并给出参考代码.然而有些我还没有尝试解决,但先把题目贴给大家,大家 ...

  6. 数模国赛历年题目 1992——2021

    数模国赛历年题目 1992--2021 获取方式 关注 公众号 数模零到一 回复关键词[国赛历年题目]即可获取 不仅包含1992-2021年题目文档,也包含题目原始数据.(无水印) 数模零到一数据库 ...

  7. Algorithm:数学建模大赛(国赛和美赛)的简介/内容、数学建模做题流程、历年题目类型及思想、常用算法、常用工具之详细攻略

    Algorithm:数学建模大赛(国赛和美赛)的简介/内容.数学建模做题流程.历年题目类型及思想.常用算法.常用工具之详细攻略 目录 国内数学建模大赛简介 1.本科生数学建模大赛 2.研究生数学建模大 ...

  8. CCF201803-4 棋局评估(100分)【博弈+DFS】

    试题编号: 201803-4 试题名称: 棋局评估 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 Alice和Bob正在玩井字棋游戏. 井字棋游戏的规则很简单:两人轮流往3* ...

  9. CCF认证 2018-03 棋局评估

    状态压缩+博弈+搜索 我先把棋局按照3进制压缩为一个整数,用这个整数作为参数去搜索,比较简便 两个人都要按最优策略来,就是博弈,这道题就简单的标记下当前是哪个人走 是Alice就递归的选择接下来能得到 ...

最新文章

  1. [ACM] hdu 1253 胜利大逃亡 (三维BFS)
  2. 蓝光模式引爆欧洲杯 神马搜索陪你度过激情夏日
  3. 修改某个用户名和密码
  4. Dubbo接口测试方法及步骤
  5. jquery jgrid filterToolBar beforeSearch 修改postData
  6. C#编程语言(六):枚举类型与结构类型
  7. zabbix监控MogDB之采集prometheus数据
  8. 2021总结-》2022年
  9. iPhone平台下的游戏开发
  10. JAVA定时任务Cron表达式解析
  11. 科学计算机的平均数在哪,平均数
  12. Android MediaPlayer多媒体系统框架
  13. rar怎么用计算机打开,解答电脑rar文件怎么打开
  14. Java获取今天是星期几
  15. 掘金茅台,三位投资客的暴富人生
  16. 户外运动装备新品--云息智能定位胸牌
  17. 2022 年项目经理薪酬趋势:找工作就这么谈
  18. 开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享
  19. 数字时代的中国支付体系现代化——DC/EP与数字人民币
  20. 华为语音合成服务,为用户提供实时、可替换、多音调的语音播放体验

热门文章

  1. Nature:Rob Knight团队发现血液和组织微生物组可诊断癌症
  2. Swift初步探究-正确导入第三方库
  3. zabbix邮件报警发送至qq邮箱
  4. nth_element(C++)
  5. 四轮差分驱动平台gazebo插件
  6. 闭关修炼(十二) NIO
  7. 系统分析师 常用英文词汇
  8. http请求报文 主机IP_计算机网络基础:这是一份详细HTTP学习指南
  9. 云服务器适用场景_适用于企业和普通用户的云计算
  10. 互联网大厂的黑话困局