先记录下心情,其实在看大佬题解前,自己已经基本yy出来了,但有一两个点没处理好,就只能放弃,亟待加油啊~

本题思路:

特判bi为1或者为2时的情况,

① 当bi = 1 && ai == 1时,此时这堆石子会被看作普通堆,因为两个人的合法操作是一样的;

② 当除第一种情况之外的bi == 1 || bi == 2的堆数大于1堆时,Bob必胜,因为此时Alice的操作是受一堆以上的堆约束的,当Bob后手对剩余的一堆进行操作(bi == 1时,将ai置为偶数,bi == 1时,将ai置为奇数),Bob将可以控制该堆的操作。

③ 当只有一个bi = 1 && ai > 1 时,Alice为了防止Bob控制操作,当ai为奇数时会取完该堆,ai为偶数时取至剩余1个石子,因为剩余1个时,Alice也可以进行和Bob一样的合法操作。此时交换先后手,对当前堆剩下的1与剩下的普通堆进行nim和求解即可。

④ 当只有一个bi = 2时,如果ai为偶数,则Alice会为了防止被控制将ai取光。此时交换先后手,对剩下的普通堆进行nim和求解即可。当ai为奇数,Alice不管怎么取都会剩下1个石子,那么这颗石子会被Bob用来控制操作,所以此时Bob必胜。

⑤任意bi都为0,则就是普通nim了。

#include <algorithm>
#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;
const int maxn = 1e5+5;
int jk[maxn], hk[maxn];
int main(){int t, n, ck, ans, flag;scanf("%d", &t);while(t--){scanf("%d", &n);ck = 0, ans = 0, flag = 0;for(int i = 1; i <= n; ++i) scanf("%d", &jk[i]);for(int i = 1; i <= n; ++i){scanf("%d", &hk[i]);if(hk[i] == 1 && jk[i] == 1) ans ^= 1;else if(hk[i] == 1){++ck;if(ck == 1 && jk[i] % 2 == 0) flag = 1, ans ^= 1;if(ck == 1 && jk[i] % 2 == 1) flag = 1;}if(hk[i] == 2){++ck;if(ck == 1 && jk[i] % 2 == 0) flag = 1;if(ck == 1 && jk[i] % 2 == 1) ++ck;}if(hk[i] == 0) ans ^= jk[i];}if(ck >= 2){printf("Bob\n");continue;}if(ck == 1){if(ans && flag) printf("Bob\n");else printf("Alice\n");continue;}if(!ans) printf("Bob\n");else printf("Alice\n");}return 0;
}

继续加油~

ZOJ-3964 2017年浙大省赛G题博弈相关推荐

  1. hihoCoder - 1633(2017北京icpc现场赛-G题)

    题意:给你一个三角形的三个坐标,还有一张图,让你从图中的左下角走到右上角,左下角坐标是(0,0),每两点之间的长度是1,'.'代表能走,'#'代表不能走,并且每条路径不能碰到三角形内部,让你求最短路径 ...

  2. 2020icpc上海赛G题 Fibonacci详解

    Fibonacci(icpc2020上海赛) 链接:icpc2020上海赛G题Fibonacci 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语 ...

  3. 5_竞赛无人机搭积木式编程——以2021年电赛G题植保无人机国奖标准完整复现为例学习

    竞赛无人机搭积木式编程 --以2021年电赛G题植保无人机国奖标准完整复现为例学习 首先我们需要了解下自动飞行任务执行过程几组关键变量的用法与实际作用效果: flight_subtask_cnt用于控 ...

  4. 2017 ACM-ICPC乌鲁木齐网络赛 G. Query on a string(KMP+树状数组)

    题目链接:https://www.jisuanke.com/contest/870 题意: 给出两个字符串S和T,Q次操作:①C a b表示将第a个字符改为b:②Q l r表示T在S的子串[l, r] ...

  5. 2017 ACM-ICPC南宁网络赛: G. Finding the Radius for an Inserted Circle

    题目链接: https://nanti.jisuanke.com/t/17314 题意:如下图 先输入两个数T和R,代表T次询问和大圆半径R 接下来每次询问输入一个k,求出图中第k小的圆Ck的半径 设 ...

  6. Little Sub and Piggybank (杭师大第十二届校赛G题) DP

    题目传送门 题意:每天能往存钱罐加任意实数的钱,每天不能多于起那一天放的钱数.如果某一天的钱数恰好等于那天的特价商品,则可以买,求最后的最大快乐值. 思路:先来一段来自出题人的题解: 显然的贪心:如果 ...

  7. hdu5443(2015长春网络赛G题)

    题意: 一个数列,求从L到R的最大值. 思路: 不多说... 代码: #include<cstdio> #include<cstring>int a[20000];int ma ...

  8. 2013年长沙网络赛G题

    题目:http://acm.zju.edu.cn/changsha/showProblem.do?problemId=28 题意:给一个数n,范围是[2,80000],使用加,乘运算和最多3个素数,有 ...

  9. 2015北京网络赛 G题 Boxes bfs

    Boxes Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acmicpc2015beijingonl ...

最新文章

  1. 网站漏洞扫描工具Uniscan
  2. javascript 语言标准 es6简介
  3. 国内外免费PHP开源建站程序
  4. kingwell Calendar V1.0 日历时间组件
  5. oracle怎么查询成绩学号,oracle学习(简单查询)
  6. 常见坑人无数的Redis面试题总结
  7. java dos 菜单栏_学习java之电脑的常用快捷键和DOS窗口下的常用命令
  8. 阿里CTO谈BAT:李彦宏说是新瓶装旧酒、马化腾说太遥远了、马云说今天就应该做
  9. 去掉iframe的水平滚动条而保留垂直滚动条
  10. MATLAB计算不定积分与定积分
  11. 无法打开包括文件: “type_traits”
  12. linux更新后不能进入系统,Ubuntu内核升级后无法进入系统的解决办法
  13. 海马玩模拟器无法链接问题处理
  14. ViewPager翻页动画失效详解
  15. 兔子繁殖 c语言编程,c语言写的兔子繁殖- 斐波那契数列.每次只显示前两个.
  16. 计算机网络拓扑有,计算机网络拓扑
  17. SMB Signing not required
  18. 劳动仲裁委员会的具体地址即(朝阳区酒仙桥南十里居28楼的具体路线)______转...
  19. golang开发工程师-第一步:golang入门基础教学
  20. 一句话木马 php asp,一句话木马源代码

热门文章

  1. 解决Margin塌陷问题方法
  2. 【转】关于linux中wps出现系统字体缺失的解决方法
  3. 铁道部与中石化,煮酒论英雄!
  4. php 读取文件自身内容,与读取文件输出内容
  5. 正则表达式 \w \s \d \b
  6. 操作符重载and模板(泛化, 全特化, 偏特化)
  7. acl 影响因子_计算机系部分会议级别和影响因子(DB、AI相关方向)
  8. 虚拟机增加磁盘空间(VMware虚拟机)
  9. 【NIO与Netty】网络编程:netty中粘包、半包现象展示,分析及解决
  10. 外网远程控制局域网内主机,路由器端口转发设置