poj1740 A New Stone Game[博弈]
2024-09-03 05:23:59
有若干堆石子,每一次需要从一堆石子中拿走一些,然后如果愿意的话,再从这堆石子中拿一些(揣度题意应该是不能拿出全部)分给其它任意不为空的堆。不能操作的人为负。
一直不会博弈啊。。感觉完全就是个智商题,虽然本质还是差不多的寻找策略,根据性质从简单的模型入手,尝试拓展结论,在尝试寻找一种稳定的策略转化为该模型。翻了这位的题解,orzorz。侵删。
补充一下,偶数堆的话如果最多的一堆与最矮的一堆看齐,砍掉的全补上了呢,这是就是一对一对相等的情况,与当前情况矛盾,所以不可能。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define dbg(x) cerr << #x << " = " << x <<endl
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
template<typename T>inline T _min(T A,T B){return A<B?A:B;}
template<typename T>inline T _max(T A,T B){return A>B?A:B;}
template<typename T>inline char MIN(T&A,T B){return A>B?(A=B,):;}
template<typename T>inline char MAX(T&A,T B){return A<B?(A=B,):;}
template<typename T>inline void _swap(T&A,T&B){A^=B^=A^=B;}
template<typename T>inline T read(T&x){
x=;int f=;char c;while(!isdigit(c=getchar()))if(c=='-')f=;
while(isdigit(c))x=x*+(c&),c=getchar();return f?x=-x:x;
}
const int N=+;
int A[N];
int n; int main(){//freopen("test.in","r",stdin);//freopen("test.out","w",stdout);
while(read(n)){
for(register int i=;i<=n;++i)read(A[i]);
if(n&)puts("");
else{
sort(A+,A+n+);register int i;
for(i=;i<=n;i+=)if(A[i]^A[i+]){puts("");break;}
if(i>n)puts("");
}
}
return ;
}
最新文章
- HttpContext.Cache属性
- 在VPS上搭建SS访问火星
- 基础知识(javaWeb工程目录结构)及各文件夹的作用
- cf429B dp递推
- 【ZOJ】3329 One Person Game
- linux--分卷压缩解压缩
- 使用快盘托管Git库
- iOS sqlite数据库实现(转)
- Python利用ConfigParser读取配置文件
- (转)Oracle Data Guard配置
- menu控件绑定sql数据库
- Windows查看进程taskList,终止进程tskill
- 关于oracle12c对RAW裸设备的支持?
- jarvisoj level5爬坑
- EXCE 表格导入导出遇到问题(easypoi)
- 性能测试三十八:Java性能分析神器-JProfiler安装和简单介绍
- MACD回零轴有三种方式
- 2018.07.04 POJ 2398 Toy Storage(二分+简单计算几何)
- Eclipse_生成webservice客户端
- Java Spring-Spring框架概述