CCF历年题目201803-4 棋局评估
代码:
#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 棋局评估相关推荐
- CCF历年题目201703-4 地铁修建
代码: #include<queue> #include<cstdio> using namespace std; const int MAXN = 100005; int n ...
- CCF 201803 跳一跳 碰撞的小球 url映射 棋局评估
试题编号: 201803-1 试题名称: 跳一跳 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱. 简化后的跳一跳规则如下: ...
- CCF计算机软件能力认证试题练习:201803-4 棋局评估
棋局评估 来源:CCF 标签: 参考资料: 相似题目: 题目 Alice和Bob正在玩井字棋游戏. 井字棋游戏的规则很简单:两人轮流往3*3的棋盘中放棋子,Alice放的是"X", ...
- CCF 201803-4 棋局评估(博弈论)
题目来源:http://118.190.20.162/view.page?gpid=T70 问题描述 试题编号: 201803-4 试题名称: 棋局评估 时间限制: 1.0s 内存限制: 256.0M ...
- CCF历年真题整理【已更新至202104】
说明:本文持续更新,若长时间未更新,请评论催催我. 以下题目均来自cspro.org,点击进入测试页面,侵删歉. 部分题目我已经解决,并给出参考代码.然而有些我还没有尝试解决,但先把题目贴给大家,大家 ...
- 数模国赛历年题目 1992——2021
数模国赛历年题目 1992--2021 获取方式 关注 公众号 数模零到一 回复关键词[国赛历年题目]即可获取 不仅包含1992-2021年题目文档,也包含题目原始数据.(无水印) 数模零到一数据库 ...
- Algorithm:数学建模大赛(国赛和美赛)的简介/内容、数学建模做题流程、历年题目类型及思想、常用算法、常用工具之详细攻略
Algorithm:数学建模大赛(国赛和美赛)的简介/内容.数学建模做题流程.历年题目类型及思想.常用算法.常用工具之详细攻略 目录 国内数学建模大赛简介 1.本科生数学建模大赛 2.研究生数学建模大 ...
- CCF201803-4 棋局评估(100分)【博弈+DFS】
试题编号: 201803-4 试题名称: 棋局评估 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 Alice和Bob正在玩井字棋游戏. 井字棋游戏的规则很简单:两人轮流往3* ...
- CCF认证 2018-03 棋局评估
状态压缩+博弈+搜索 我先把棋局按照3进制压缩为一个整数,用这个整数作为参数去搜索,比较简便 两个人都要按最优策略来,就是博弈,这道题就简单的标记下当前是哪个人走 是Alice就递归的选择接下来能得到 ...
最新文章
- [ACM] hdu 1253 胜利大逃亡 (三维BFS)
- 蓝光模式引爆欧洲杯 神马搜索陪你度过激情夏日
- 修改某个用户名和密码
- Dubbo接口测试方法及步骤
- jquery jgrid filterToolBar beforeSearch 修改postData
- C#编程语言(六):枚举类型与结构类型
- zabbix监控MogDB之采集prometheus数据
- 2021总结-》2022年
- iPhone平台下的游戏开发
- JAVA定时任务Cron表达式解析
- 科学计算机的平均数在哪,平均数
- Android MediaPlayer多媒体系统框架
- rar怎么用计算机打开,解答电脑rar文件怎么打开
- Java获取今天是星期几
- 掘金茅台,三位投资客的暴富人生
- 户外运动装备新品--云息智能定位胸牌
- 2022 年项目经理薪酬趋势:找工作就这么谈
- 开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享
- 数字时代的中国支付体系现代化——DC/EP与数字人民币
- 华为语音合成服务,为用户提供实时、可替换、多音调的语音播放体验