2019年FJNU低编赛 G题(dfs博弈)
题目大意:
有一个 0 ~ n+1 的数轴,Alice 站在 0 点处,Bob 站在 n+1 点处。在 1 ~ n 上各有着权值。 Alice 每次向右移动 1 格或两格 ,Bob 每次向左移动 1 格或 2 格(他们一定要移动),Alice 移动到 n+1 处停止,Bob 移动到 0 处停止,直到他们都停止的时候,此时若 Alice 所经过的数值总和大于 Bob 的数值总和,则 Alice 胜出,反则 Bob 胜出。Alice 先出手,两人足够聪明,走到的数值必须拿走,而走到过的数值不能再被拿走。
分析:
1、显然是博弈题。
2、dfs 枚举所有可能,当 Alice 出手时,有两种走法(走一步或两步)。比如 Alice 走一步后,枚举 Bob 走到的地方(也只有两种走法),然后判断是否 Bob 无论怎样走, 此时 Alice 必赢,则 “此刻 Alice 走一步” 为必胜态,因为若 Alice 走这一步之后, Bob 无论怎么操作都无法获胜,则此时为必胜态。
3、故枚举 Alice 的两次走法,假如此时 Alice 处于位置 x ,若此刻走到 u 可以使得自身处于必胜态,则返回 true ,告诉 dfs 的上一层中,走到 x 处可以转化为必胜态。
博弈点分析:假如此刻位置为 x ,现在两种走法可以使得 x 走到 u1 或者 u2。若 u1 与 u2 同时为必胜点,则 x 处也为必胜点;若 u1 是必胜点,u2 是必败点,则 x 处也为必胜点,因为 选手足够聪明,走到 x 处后会走到 u1 处,故 x 为必胜点;若 u1 与 u2 同为必败点,则 x 也为必败点。这就是为什么 必胜点可以转化为必败点或必胜点,而必败点只能转化为必败点。
细节处理:
1、此题不应该 vis 设为 bool 类型,因为走过的点会重复,不好判断。
2、最好走到临界点的时候特判(x==n+1 以及 y==0)。
代码如下:
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
int t,n;
int a[];
int tox[]={,};
int toy[]={-,-};
int vis[];
bool dfs(int x,int y,int res,int ans){
if(x==n+&&y==) return res>ans;
bool q;
for(int i=;i<;i++){
q=true;
int u,res1;
if(x==n+) u=x,res1=;
else{
u=x+tox[i];
if(u>n+) continue;
vis[u]++;
res1=(vis[u]==?:a[u]);
}
for(int j=;j<;j++){
int v,ans1;
if(y==) v=y,ans1=;
else{
v=y+toy[j];
if(v<) continue;
vis[v]++;
ans1=(vis[v]==?:a[v]);
}
bool w=dfs(u,v,res+res1,ans+ans1);
if(y!=) vis[v]--;
if(!w) {
q=false;
break;
}
}
if(x!=n+) vis[u]--;
if(q) return true;
}
return false;
}
int main()
{
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d",&a[i]);
a[]=a[n+]=;
if(dfs(,n+,,)) printf("Alice\n");
else printf("Bob\n");
}
}
2019年FJNU低编赛 G题(dfs博弈)的更多相关文章
- 2016年省赛G题, Parenthesis
Problem G: Parenthesis Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 398 Solved: 75[Submit][Status ...
- 2015北京网络赛 G题 Boxes bfs
Boxes Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acmicpc2015beijingonl ...
- 哈尔滨工程大学ACM预热赛 G题 A hard problem(数位dp)
链接:https://ac.nowcoder.com/acm/contest/554/G Now we have a function f(x): int f ( int x ) { if ( ...
- Little Sub and Piggybank (杭师大第十二届校赛G题) DP
题目传送门 题意:每天能往存钱罐加任意实数的钱,每天不能多于起那一天放的钱数.如果某一天的钱数恰好等于那天的特价商品,则可以买,求最后的最大快乐值. 思路:先来一段来自出题人的题解: 显然的贪心:如果 ...
- 2018 ACM-ICPC徐州站网络赛 G题
There's a beach in the first quadrant. And from time to time, there are sea waves. A wave ( xxx , yy ...
- 福建工程学院第十四届ACM校赛G题题解
外传:编剧说了不玩游戏不行 题意: 有n个石堆,我每次只能从某一堆中取偶数个石子,你取奇数个,我先手,先不能操作的人输.问最后谁能赢. 思路: 这个题仔细想想,就发现,取奇数的人有巨大的优势,因为假设 ...
- 2019 ICPC南京站网络赛 H题 Holy Grail(BF算法最短路)
计蒜客题目链接:https://nanti.jisuanke.com/t/41305 给定的起点是S,终点是T,反向跑一下就可以了,注意判负环以及每次查询需要添加边 AC代码: #include< ...
- 2013 acm 长沙网络赛 G题 素数+枚举 Goldbach
题目 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3856 先预处理求出两个素数的和与积,然后枚举n-prime和n/pr ...
- 2013ACM-ICPC亚洲区南京站现场赛G题
题目大意:一个n维的系统中随机选一个向量(X1,X2,X3,...,Xn),其中0<=Xi<=R,且X1^2+X2^2+X3^2+……+Xn^2 <= R^2. 现在给定n,R.求X ...
随机推荐
- Electron 设置 -webkit-app-region 后无法响应鼠标点击事件的解决方式
参考博客:https://blog.csdn.net/qq_20264891/article/details/87721163
- 关于F5负载均衡你认识多少?
关于F5负载均衡你认识多少? 2018年06月09日 18:01:09 tvk872 阅读数:14008 网络负载均衡(load balance),就是将负载(工作任务)进行平衡.分摊到多个操作单 ...
- RNN循环神经网络
1.为什么还会有RNN? CNN(卷积神经网络)我们会发现, 他们的输出都是只考虑前一个输入的影响而不考虑其它时刻输入的影响, 比如简单的猫,狗,手写数字等单个物体的识别具有较好的效果. 但是, 对于 ...
- .net access config 相对路径
<configuration> <connectionStrings> <add name="ConStr" connectionString=&qu ...
- 《Java基础知识》Java类的定义及其实例化
类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public class Dog { String name; int age; ...
- Caffe源码-SGDSolver类
SGDSolver类简介 Solver类用于网络参数的更新,而SGDSolver类实现了优化方法中的随机梯度下降法(stochastic gradient descent),此外还具备缩放.正则化梯度 ...
- CouchDB学习-维护
官方文档 1 压缩 压缩操作是通过从数据库或者视图索引文件中移除无用的和老的数据减少硬盘使用空间.操作非常简单类似于其他数据库(SQLite等)管理系统. 在压缩目标期间,CouchDB将创建扩展名为 ...
- Openresty快速安装
1. 场景描述 软件老王帮同事初始化服务器,需要安装下Openresty,安装过好多次,但是命令还是记不住,这次又安装记录了下,直接按下面的命令next-next就行了,2-3分钟左右就ok了. 2. ...
- HTTP_header安全选项(浅谈)
HTTP报文头-安全问题 Mirror王宇阳 2019-10-01 参考:MDN技术文档:<http头安全相关的选项_by`myh0st> 认识HTTP协议 https://www.cnb ...
- 利用Azure虚拟机安装Dynamics 365 Customer Engagement之十二:新增SQL Server可用性副本
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...