博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20170908 校内模拟赛 游戏
阅读量:4599 次
发布时间:2019-06-09

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

T1.游戏(game)

小 z 和小 Z 最近迷上了玩 Nim 游戏,这个游戏的规则是这样的:有 n 堆石
子,第 i 堆有 ai 个石子。两个人轮流操作,每次可以任意取一堆的任意多个石
子,可以取完或者不取完,谁先取不了谁输。
每次创造一个初始局面过于麻烦, 他们决定把石子聚成很多堆, 又把这些堆
摆成一棵树,每次选择一条链上的所有石子堆作为初始局面玩游戏。当然,他们
还经常修改石子堆里的石子数量。
小 Z 明白这个游戏是有必胜策略的,所以他总是按照策略行动,并且经常
获胜。小 z 并不知道获胜策略,所以他去请教了机智的小 d。在明白了获胜策略
之后他恍然大悟, 这时他回想起了和小 Z 玩的好多场游戏, 他想知道其中有哪些
游戏他一定会失败?
由于小 Z 好强,所以小 z 总是后手。

#include
struct edge{ int to,nx;}e[5000001];int h[500001];int n,Q,p;int num;int a[500001];int fa[500001][21],dep[500001],l[500001],r[500001];int BIT[500001];int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){
if(ch=='0')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}void update(int x,int v){ for(int i=x;i<=n;i+=(i&(-i))){ BIT[i]^=v; }}int query(int x){ int ans=0; for(int i=x;i;i-=(i&(-i))){ ans^=BIT[i]; } return ans;}void ae(int fr,int to){ e[++p]=(edge){to,h[fr]};h[fr]=p;}void dfs(int x){ for(int i=1;i<=20;i++){ if(dep[x]>=(1<
=0;i--){ if(fa[x][i]!=fa[y][i]) x=fa[x][i],y=fa[y][i]; } if(x==y) return x; return fa[x][0];}int main(){ //freopen("game.in","r",stdin); //freopen("game.out","w",stdout); n=read(); for(int i=1;i<=n;i++){ a[i]=read(); } for(int i=1;i

 

转载于:https://www.cnblogs.com/nzher/p/7500950.html

你可能感兴趣的文章
C2. Power Transmission (Hard Edition)(线段相交)
查看>>
STM32F0使用LL库实现SHT70通讯
查看>>
Atitit. Xss 漏洞的原理and应用xss木马
查看>>
MySQL源码 数据结构array
查看>>
(文件过多时)删除目录下全部文件
查看>>
T-SQL函数总结
查看>>
python 序列:列表
查看>>
web移动端
查看>>
pythonchallenge闯关 第13题
查看>>
linux上很方便的上传下载文件工具rz和sz使用介绍
查看>>
React之特点及常见用法
查看>>
【WEB前端经验之谈】时间一年半,或沉淀、或从零开始。
查看>>
优云软件助阵GOPS·2017全球运维大会北京站
查看>>
linux 装mysql的方法和步骤
查看>>
poj3667(线段树区间合并&区间查询)
查看>>
51nod1241(连续上升子序列)
查看>>
SqlSerch 查找不到数据
查看>>
集合相关概念
查看>>
Memcache 统计分析!
查看>>
(Python第四天)字符串
查看>>