怎么又是博弈论。。。我去

Orz hzwer,这道题其实是可以转化成Nim游戏的!

"第一步:

先从n根巧克力棒中取出m(m>0)根,使得这m根巧克力棒的xor和为0,同时使得剩下的n-m根巧克力棒无论怎么取,xor和都不为0。

m根巧克力棒的xor和为0 <=>把nim游戏的必败状态留给对方

剩下的n-m根巧克力棒无论怎么取,xor和都不为0 <=>  m为巧克力棒的xor和为0的最长子序列

第二步:

第一步以后,对手就面临一个必败状态的nim游戏。

如果他从n-m根中取新的巧克力棒,实际上就是新建一个xor和不为0的nim游戏,这时轮到己方操作只要将这个新的nim游戏取到xor和为0即可。

也就是让对方再次面临所有nim游戏均为必败状态的局面。"

于是只要寻找m是否存在即可,由于n = 14,深搜即可。

 1 /**************************************************************
 2     Problem: 1299
 3     User: rausen
 4     Language: C++
 5     Result: Accepted
 6     Time:8 ms
 7     Memory:804 kb
 8 ****************************************************************/
 9
10 #include <cstdio>
11
12 using namespace std;
13 int n, a[20];
14 bool flag;
15
16 inline int read(){
17     int x = 0, sgn = 1;
18     char ch = getchar();
19     while (ch < '0' || ch > '9'){
20         if (ch == '-') sgn = -1;
21         ch = getchar();
22     }
23     while (ch >= '0' && ch <= '9'){
24         x = x * 10 + ch - '0';
25         ch = getchar();
26     }
27     return sgn * x;
28 }
29
30 void dfs(int x, int cnt, int X){
31     if (x == n + 1){
32         if (!X && cnt) flag = 1;
33         return;
34     }
35     if (flag) return;
36     dfs(x + 1, cnt, X);
37     if (flag) return;
38     dfs(x + 1, cnt + 1, X ^ a[x]);
39 }
40
41 int main(){
42     for (int t = 1; t <= 10; ++t){
43         flag = 0;
44         n = read();
45         for (int i = 1; i <= n; ++i)
46             a[i] = read();
47         dfs(1, 0, 0);
48         printf(flag ? "NO\n" : "YES\n");
49     }
50     return 0;
51 }

View Code

转载于:https://www.cnblogs.com/rausen/p/4052548.html

BZOJ1299 [LLH邀请赛]巧克力棒相关推荐

  1. BZOJ1299[LLH邀请赛]巧克力棒——Nim游戏+搜索

    题目描述 TBL和X用巧克力棒玩游戏.每次一人可以从盒子里取出若干条巧克力棒,或是将一根取出的巧克力棒吃掉正整数长度.TBL先手两人轮流,无法操作的人输. 他们以最佳策略一共进行了10轮(每次一盒). ...

  2. 【BZOJ】1299: [LLH邀请赛]巧克力棒

    [算法]博弈论 [题解]这道题不是典型的SG函数题了. 不把它当成游戏看待,那么这道题是在说n个石子堆,每次可以加入若干个或进行Nim游戏. 我们当前先手,则考虑构造必败态来获胜. 当前已加入的NIm ...

  3. 信奥中的数学:博弈论

    第7章 博弈论(<信息学奥赛一本通 提高篇>第6部分 数学基础) 例1 取石子游戏 取石子游戏(hdu1527 博弈) - 寻找&星空の孩子 - 博客园 取石子游戏_whiterb ...

  4. 2016广东工业大学新生杯决赛网络同步赛暨全国新生邀请赛

    2016广东工业大学新生杯决赛网络同步赛暨全国新生邀请赛 Ploblem A :   pigofzhou的巧克力棒 原题链接:http://gdutcode.sinaapp.com/problem.p ...

  5. 【组队学习】【24期】河北邀请赛(二手车价格预测)

    河北邀请赛(二手车价格预测) 开源内容: https://github.com/datawhalechina/team-learning-data-mining/tree/master/SecondH ...

  6. 【直播】王茂霖:二手车交易价格预测-千变万化特征工程(河北高校数据挖掘邀请赛)

    二手车交易价格预测-千变万化特征工程 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中.为了大家更好的参赛,王茂霖分享了 从0梳理1场数据挖掘赛事!,完整梳理了从环境准备.数据读取.数据分析.特征工 ...

  7. 【直播】王茂霖:二手车交易价格预测 Baseline 提高(河北高校数据挖掘邀请赛)

    二手车交易价格预测 Baseline 提高 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中.为了大家更好的参赛,王茂霖分享了 从0梳理1场数据挖掘赛事!,完整梳理了从环境准备.数据读取.数据分析. ...

  8. 【直播】鱼佬:数据挖掘师之路(河北高校数据挖掘邀请赛)

    数据挖掘师之路 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中.为了大家更好的参赛,王茂霖分享了 从0梳理1场数据挖掘赛事!,完整梳理了从环境准备.数据读取.数据分析.特征工程到数据建模的整个过程 ...

  9. 河北省高校数据挖掘邀请赛来了!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale-河北 组织方:阿里云天池.Datawhale 鉴于疫情的影响,不少河北高校已 ...

最新文章

  1. SuperGLUE和GLUE双料冠军!图灵T-NLRv5:MNLI和RTE首次达到人类水平
  2. 模拟PLC 的圆弧插补方式在VC中绘制圆弧
  3. STM32之CAN---中断管理浅析
  4. word编辑论文技巧
  5. nginx丢弃http包体处理
  6. es查询index生成时间_Elasticsearch开始的第一步索引index
  7. Codeforces Round #700 (Div. 2) D1 D2. Painting the Array 思维
  8. error This module isn‘t specified in a package.json file.
  9. HttpClient Get请求实例
  10. [2003] Can't connect to MySQL server on 'localhost' (13) 错误解决方法 【主要是linux下php连接不上mysq时】...
  11. JAVA编程思想读书笔记(五)--多线程
  12. 深度学习的深度和宽度的理解
  13. 线和面的方程区别_几种常见的曲面及其方程.ppt
  14. Python合并两个有序链表
  15. springboot跳转外部链接
  16. 揭秘三个霸道的引流方法 为你扫清没流量的烦恼
  17. html表格标签以及CSS基础
  18. 找出一个二维数组中的鞍点
  19. 小程序实现点击复制内容功能
  20. TMUX简单的安装与使用(原来如此简单)

热门文章

  1. 【bzoj 1754】【POJ - 2389 】Bull Math (高精度运算)
  2. 项目总结2:ionic3开发跨平台App如何设置和替换应用图标及启动图
  3. java mac 转换 整形_JAVA的整型与字符串相互转换
  4. linux的程序员计算器,linux中的计算器
  5. linux ip brd不一致_3 个方便的命令行网速度测试工具 | Linux 中国
  6. JDom,jdom解析xml文件
  7. Struts2中s:iterator/s:iterator标签的使用:
  8. leetcode933. 最近的请求次数
  9. 【大总结1】数据结构与传统算法总结
  10. 一文搞懂 什么是CPU上下文?为什么要切换?如何减少切换?