hdu1850(nim博弈)
2024-08-30 06:03:46
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1850
题意:中文题诶~
思路:nim博弈
可以将本题抽象成一般nim博弈,那么有:
1. 对于所有元素异或值为0的情况为P局面
2. 若a1^a2...^ai...^an=m!=0,那么一定存在一个ai'使得a1^a2...^ai'...^an=0;不难算出ai'=num^ai;
即只要我们能将ai变成num^ai,那么对手将面对P局面;又从游戏规则可知ai'<ai(要从ai中拿掉一定数目的牌变成ai');
所以我们需要做的就是统计num^ai<ai的数目啦;
代码:
#include <iostream>
#define MAXN 1010
using namespace std; int a[MAXN]; int main(void){
int n;
while(cin >> n&&n){
int ans=;
for(int i=; i<n; i++){
cin >> a[i];
ans^=a[i];
}
if(!ans){
cout << << endl;
}else{
int num=;
for(int i=; i<n; i++){
if((ans^a[i])<a[i]){
num++;
}
}
cout << num << endl;
}
}
return ;
}
最新文章
- ubuntu中用户使用的shell如何指定
- JQuery测手速小游戏-遁地龙卷风
- HDOJ 1870
- hdu 2054
- PPT图片快速编辑技巧
- 宏ut_mem_block_t
- webstorm 主题设置 皮肤设置
- cocos2dx jsb 在IOS与安卓下的一些不同之处
- Android在onCreate()中获得控件尺寸
- Python类的基础入门知识
- HDOJ 1237题 简单计算器
- android开发之使用Messenger实现service与activity交互
- 去除input[type=number]最右边的spinners(默认加减符号)
- 输入和输出--RandomAccessFile类
- MySQL中的replace语句
- Django之auth模块
- ASP.NET Core 新建线程中使用依赖注入的问题
- linux常用的BootLoader U-boot的前世今生
- 安卓中使用OkHttp发送数据请求的两种方式(同、异步的GET、POST) 示例-- Android基础
- 从python容器中随机选取元素
热门文章
- 如果在 Code First 模式下使用,则使用 T4 模板为 Database First 和 Model First
- 2016/07/07 apmserv5.2.6 Apache启动失败,请检查相关配置。MySQL5.1已启动。
- mvn 添加本地jar包
- EasyDarwin做转发延时太大?
- Java开发面试题
- 按照eslint 规范写代码 [eslint] &#39;flag&#39; is assigned to itself. (no-self-assign)
- Dropout: A Simple Way to Prevent Neural Networks fromOverfitting
- Java诊断工具Arthas
- Python序列——字符串
- UVA10561 Treblecross —— SG博弈