博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 1982: [Spoj 2021]Moving Pebbles [博弈论 对称]
阅读量:5303 次
发布时间:2019-06-14

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

给你N堆Stone,两个人玩游戏. 每次任选一堆,首先拿掉至少一个石头,然后移动任意个石子到任意堆中. 谁不能移动了,谁就输了...


 

以前在poj做过已经忘记了...

构造对称,选最多的一堆往其他堆分构造对称局面,先手必胜

一开始就对称,先手必败

#include 
#include
#include
#include
#include
using namespace std;typedef long long ll;const int N=1e5+5;inline int read(){ char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){
if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f;} int n,a[N];int main(){ n=read(); if(n&1) puts("first player"); else{ for(int i=1;i<=n;i++) a[i]=read(); sort(a+1,a+1+n); int flag=0; for(int i=2;i<=n;i+=2) if(a[i]!=a[i-1]) {flag=1;break;} puts(flag ? "first player" : "second player"); }}

 

转载于:https://www.cnblogs.com/candy99/p/6551301.html

你可能感兴趣的文章
javascript中的传递参数
查看>>
objective-c overview(二)
查看>>
python查询mangodb
查看>>
consonant combination
查看>>
驱动的本质
查看>>
Swift的高级分享 - Swift中的逻辑控制器
查看>>
Swagger简单介绍
查看>>
Python数据分析入门案例
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
Linux 中【./】和【/】和【.】之间有什么区别?
查看>>
内存地址对齐
查看>>
看门狗 (监控芯片)
查看>>
css背景样式
查看>>
JavaScript介绍
查看>>
开源网络漏洞扫描软件
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>
创新课程管理系统数据库设计心得
查看>>
Hallo wolrd!
查看>>
16下学期进度条2
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>