LA5059 Playing With Stones
题意:nim游戏。加上限制每次不得取走超过当前堆一半的石子
1 ≤ N ≤ 100,1 ≤ ai ≤ 2 ∗ 1018
分析:由于ai过大。所以我们采用SG函数递推找规律。
(详见代码)
#include<cstdio>
using namespace std;
typedef long long ll;
int T,n;ll x,S;
ll GetSG(ll x){
return x&?GetSG(x>>):x>>;
}
int main(){
for(scanf("%d",&T);T--;){
for(scanf("%d",&n),S=;n--;){
scanf("%lld",&x);
S^=GetSG(x);
}
if(S) puts("YES");
else puts("NO");
}
return ;
}
LA5059 Playing With Stones的更多相关文章
- UVALive 5059 C - Playing With Stones 博弈论Sg函数
C - Playing With Stones Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu S ...
- UVA 1482 - Playing With Stones(SG打表规律)
UVA 1482 - Playing With Stones 题目链接 题意:给定n堆石头,每次选一堆取至少一个.不超过一半的石子,最后不能取的输,问是否先手必胜 思路:数值非常大.无法直接递推sg函 ...
- 【LA5059】Playing With Stones (SG函数)
题意:有n堆石子,分别有a[i]个.两个游戏者轮流操作,每次可以选一堆,拿走至少一个石子,但不能拿走超过一半的石子. 谁不能拿石子就算输,问先手胜负情况 n<=100,1<=a[i]< ...
- LA 5059 - Playing With Stones
博弈 SG 由于每个a太大,没有办法递推,但是可以找规律 a为偶数 SG(a)=a/2 a为奇数 SG(a)=SG(a/2) 代码: #include <iostream> #inc ...
- LA 5059 (找规律 SG函数) Playing With Stones
题意: 有n堆石子,两个人轮流取,每次只能取一堆的至少一个至多一半石子,直到不能取为止. 判断先手是否必胜. 分析: 本题的关键就是求SG函数,可是直接分析又不太好分析,于是乎找规律. 经过一番“巧妙 ...
- uva 1482 - Playing With Stones
对于组合游戏的题: 首先把问题建模成NIM等经典的组合游戏模型: 然后打表找出,或者推出SG函数值: 最后再利用SG定理判断是否必胜必败状态: #include<cstdio> #defi ...
- uva1482:Playing With Stones (SG函数)
题意:有N堆石子,每次可以取一堆的不超过半数的石子,没有可取的为输. 思路:假设只有一堆,手推出来,数量x可以表示为2^p-1形式的必输. 但是没什么用,因为最后要的不是0和1,而是SG函数:所以必输 ...
- UVaLive5059 Playing With Stones
数学问题 博弈 SG函数 我总觉得这题做过的……然而并没有记录 看上去是一个nim游戏的模型. 手推/打表找一下前几项的规律,发现x是偶数时,sg[x]=x/2,x是奇数时,sg[x]=sg[x di ...
- UVA1482 Playing With Stones —— SG博弈
题目链接:https://vjudge.net/problem/UVA-1482 题意: 有n堆石子, 每堆石子有ai(ai<=1e18).两个人轮流取石子,要求每次只能从一堆石子中抽取不多于一 ...
随机推荐
- EF6 Code First 模式更新数据库架构
定义好实体类和上下文类 在 Package Manager Console 输入以下命令 1.Enable-Migrations 启用数据迁移功能,该命令通常会在项目根目录下生成 Migrations ...
- Jquery实现无刷新DropDownList联动
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...
- js 获取中文的拼音首字母
es6 + 模块化封装 "use strict"; module.exports = { //参数,中文字符串 //返回值:拼音首字母串数组 makePy (str) { if ( ...
- sql server数据库查询超时报错
报错信息如下: 链接服务器"DBJointFrame"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "查询超时已过期". ...
- 从JSON数据中取出相关数据
参考: http://www.cnblogs.com/shuilangyizu/p/6019561.html JSON数据如下: { "total": 1, "rows& ...
- Linux find 命令概览
Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时 ...
- linux服务器 IE中ico 不能正常显示
问题: mime_type: image/vnd.microsoft.icon 的,但发现在 IE 下面,直接打开 icon 的地址,图标不能正常显示 1.将ico放在windows服务器上,直接访问 ...
- R ggplot2 翻转坐标
p <- ggplot(mpg, aes(class, hwy)) p + geom_boxplot() p + geom_boxplot() + coord_flip()
- 基于jQuery的图片异步加载和预加载实例
如今的网页中有很多图片,比如相册列表,那么如果一次性读取图片将会瞬间加重服务器的负担,所以我们用jQuery来实现图片的异步加载和预加载功能,这样在页面的可视范围内才会加载图片,当拖动页面至可视界面时 ...
- PHP——修改数据库2-加提示框,加登录页面
登录页面:0127lianxi.php <body> <h1>登陆</h1> <form action="0127lianxi.php" ...