当前位置:
首页 >
poj1740 A New Stone Game
发布时间:2025/4/16
38
豆豆
生活随笔
收集整理的这篇文章主要介绍了
poj1740 A New Stone Game
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
题意:对于n堆石子,每堆若干个,两人轮流操作,每次操作分两步,第一步从某堆中去掉至少一个,第二步(可省略)把该堆剩余石子的一部分分给其它的某些堆。
真是好♂题,代码不长就是好♂题。
首先考虑两堆相同的石子,先手一定必输,因为若是我操作第一堆,则后手也可以对第二堆做对称决策。
其实,其他情况,一定是先手必胜。
第一种情况:奇数堆。
我们可以将最大堆的石子分配给其他堆让他们两两配对,如下图所示:
显然,红色部分绝壁不会超过第五个 石子的高度。
第二种情况:偶数情况
我们可以把最大堆和最小堆先配对,剩余的那段照样拿来和n-2堆石子配用。
呆玛:
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<string> 6 #include<algorithm> 7 int n,f[205],x; 8 int main(){ 9 while (scanf("%d",&n)&&n){ 10 int cnt=0; 11 memset(f,0,sizeof f); 12 for (int i=1;i<=n;i++){ 13 scanf("%d",&x); 14 if (!f[x]) cnt++,f[x]=1; 15 else cnt--,f[x]=0; 16 } 17 if (!cnt) printf("0\n"); 18 else printf("1\n"); 19 } 20 }
转载于:https://www.cnblogs.com/qzqzgfy/p/5266761.html
总结
以上是生活随笔为你收集整理的poj1740 A New Stone Game的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Java——容器(Set)
- 下一篇: Example002定时打开窗口