【codevs1582】【BZOJ1228】E和D,博弈
传送门1
传送门2
思路:
忍不住吐糟……
刚开始我想错了
知道每个组是相互独立的
然后就很天真的以为确定出每个组的胜负关系,异或一下就可以了
手玩一下,发现胜负规律很简单
然后得了20分……
然后改成了把答案”或”起来
然后就得了80分?!
woc
其实每个组就是相互独立的
只不过你要求出各自的SG函数
然后异或起来,判断是否为0
实际上手玩单个组的胜负关系+记忆化搜索SG函数是可以拿到40分的
但是通过打(ti)表(jie)我们发现
SG(i,j)实际上等于k,k是满足下条件的最小自然数
i−1<2ki-1(mod(mod 2k+1)2^{k+1})且j−1<2kj-1(mod(mod 2k+1)2^{k+1})
然后就可以做了
复杂度O(TnP)O(TnP)
P=30左右
#include<cstdio>
using namespace std;
int n,a[20001];
int sg(int x,int y)
{long long t=2;for(int i=0;;++i,t<<=1)if ((x-1&t-1)<(t>>1)&&(y-1&t-1)<(t>>1))return i;
}
int in()
{int t=0;char ch=getchar();while (ch>'9'||ch<'0') ch=getchar();while (ch>='0'&&ch<='9') t=(t<<1)+(t<<3)+ch-48,ch=getchar();return t;
}
main()
{for (int ans=0,T=in();T;--T){n=in();ans=0;for (int i=1;i<=n;++i){a[i]=in();if (!(i&1)) ans^=sg(a[i-1],a[i]);}if (ans) puts("YES");else puts("NO");}
}
【codevs1582】【BZOJ1228】E和D,博弈相关推荐
- POJ1067_取石子游戏_威佐夫博弈
/* *State: 1067 Accepted 176K 16MS C++ 435B *题目大意: * 威佐夫博弈 *解题思路: * 略. */ #include <iostream> ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
- BZOJ2275[Coci2010]HRPA——斐波那契博弈
题目描述 N个石子,A和B轮流取,A先.每个人每次最少取一个,最多不超过上一个人的个数的2倍. 取到最后一个石子的人胜出,如果A要有必胜策略,第一次他至少要取多少个. 输入 第一行给出数字N,N< ...
- 博弈最高位POJ 1704(Georgia and Bob-Nim博弈)
新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 Georgia and Bob Time Limit: 1000MS Memory Limit: 10000K Total Su ...
- 2016 多校赛3 A 水 B 期望,规律 C 各种博弈 J 物理题,积分 K 暴力,水
2016 Multi-University Training Contest 3 A - Sqrt Bo 题意:给一个数 n,问n要多少次平方后化为1,如果超过5次输出"TAT". ...
- 人类偏好的“可塑性”,从博弈说起
作者 | 斯图尔特·罗素 来源 | <AI新生> 出品 | AI科技大本营 经济学家通过为人类受试者提供选择来套取他们的偏好.该技术广泛应用于产品设计.营销和交互式电子商务系统中.例如,汽 ...
- 点分治问题 ----------- P3727 曼哈顿计划E[点分治+博弈SG函数打表找规律]
题目链接 解题思路: 1.首先对于每个操作我们实际上是一个博弈问题 对于k=1的操作就是很基础的NIM游戏就是找到一条链的异或和为0 对于k=2的操作通过达打表找规律: 如果s是奇数那么偶数的SG函数 ...
- 博弈入门学习的博客[资源汇总]
kuangbin的博弈论 kuangbin的博弈论题解 kuangbin博弈论题单 博弈大佬的博客 博弈论题单 分割形博弈 SG函数
- codeforces1700数学:E2. Close Tuples (hard version)[组合计数 逆向统计] D. Circle Game[对称博弈考虑对称状态的胜负]
E2. Close Tuples (hard version) 题目大意: 给定一个长度为n的序列a,给定一个长度为n的序列a,给定一个长度为n的序列a, 要从中挑选一个m元组(ai1,ai2,ai3 ...
最新文章
- Elasticsearch 参考指南(多索引)
- keepalived安装与配置_面试官问LVS+keepalived+nginx怎么实现时该怎么答?
- pycharm不支持svn,是需要svn命令行工具没有安装(for windows)
- lasso回归和岭回归_如何计划新产品和服务机会的回归
- mysql windows ad_mysql windows安装
- java 线程加载类_怎么判断java当前线程是否加载了一个类的字节码
- Restore IP Address-深度优先遍历DFS
- iOS 修改状态栏颜色
- 公共代码参考(PackageManager)
- 个人项目集 - Oliver Chu
- Tableau:仪表板操作
- SEO网站优化注意5个小细节,降低网站跳出率
- c++ 显示三维散点图_办公小技巧:三维展示 用好Excel矩阵图
- python——字符串练习:句子反转(小米笔试题)
- PLSQL设置选中字母大小写切换快捷键
- ChineseGLUE:为中文NLP模型定制的自然语言理解基准
- 老闪创业那些事儿(58)——C轮融资变身超级独角兽
- mac电脑如何抢火车票
- 工作中如何应对那些不讲武德的人?
- QA与QC质量管理对比