博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj1299: [LLH邀请赛]巧克力棒
阅读量:5946 次
发布时间:2019-06-19

本文共 803 字,大约阅读时间需要 2 分钟。

博,博弈论?

大概可以理解成从一个盒子里取出几堆石子,或者对已经取出的盒子做nim博弈,问先手是否必胜
说实话直接dfs就能过
考虑一下,取出石子意味着改变当前的异或和,只有当取出的石子的异或和为\(0\)的时候,才能改变当前的先后手输赢状况
刚开始石子数为\(0\),先手必败,那么它必须得取出一个异或和为\(0\)的石子集合,且剩下的石子中不存在异或和为\(0\)的集合。不难发现如果剩下部分还存在异或和为\(0\)的集合的话,取出来也没有问题
所以就变成判断是否存在一个集合异或和为\(0\)了,线性基即可

//minamoto#include
#define R register int#define fp(i,a,b) for(R i=a,I=b+1;i
I;--i)using namespace std;char buf[1<<21],*p1=buf,*p2=buf;inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}int read(){ R res,f=1;char ch; while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1); for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0'); return res*f;}const int N=15;int p[35],a[N],n;bool ins(R x){ fd(i,30,0)if(x&(1<

转载于:https://www.cnblogs.com/bztMinamoto/p/10055569.html

你可能感兴趣的文章
“蓝桥杯”软件大赛入门训练4道题
查看>>
Unable to get the CMake version located at
查看>>
爬虫基本原理
查看>>
Heritage from father
查看>>
css选择器
查看>>
使用多线程
查看>>
Django--Uploaded Files以及Handlers
查看>>
在IIS(64位)上部署WCF服务访问Oracle数据库
查看>>
个人在 laravel 开发中使用到的一些技巧(持续更新)
查看>>
iOS之KVO
查看>>
数组的代替品
查看>>
BZOJ-1878: [SDOI2009]HH的项链(莫队算法)
查看>>
Python3 定时访问网页
查看>>
两种算法解决查找子串的问题:hdu1711
查看>>
老板,让我们专注的工作【写给老板的一封信】
查看>>
LBS突围:从微信到微博
查看>>
SFB 项目经验-40-Skype for Business-呼入正常-呼出不正常
查看>>
吴忌寒江卓尔批“闪电网络”背后,是链圈和矿圈的的利益之争
查看>>
python的cls,self,classmethod,staticmethod
查看>>
应用系统中常见报表类型解析
查看>>