博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1740
阅读量:5861 次
发布时间:2019-06-19

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

知道了怎么做,代码真的好写。。。

楼教主男人八题

输的情况只有“偶数堆,且存在每对堆都有相等情况”

比如a1<a2<..<a2n+1

奇数时,最优策略就是调整最后一堆使得每对堆相同,可以证明做到的。 a2n+1>(a2n-a2n-1)+(a2n-2-a2n-3)..+(a2-a1)  画图得证。

偶数时,最优策略就是将(a2n,a1),(a2,a3)...通过调整第一组使得每对堆相同。然而由于必须减少1个以上,所以存在每对都相同时就必败。

#include
int i,j,n,k,a[100];int main(){ while(scanf("%d",&n),n){ for(i=1;i<=n;i++) scanf("%d",&a[i]); if(n%2==1) { printf("1\n"); continue; } for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) if(a[i]>a[j]){ k=a[i];a[i]=a[j];a[j]=k; } k=0; for(i=2;i<=n;i=i+2) if(a[i]!=a[i-1]) k=-1; if(k==-1) printf("1\n"); else printf("0\n"); } return 0;}

 

转载于:https://www.cnblogs.com/Mathics/p/3681171.html

你可能感兴趣的文章
实验五
查看>>
keypress 、keydown、keyup后触发回车
查看>>
非节点主机通过内网远程管理docker swarm集群
查看>>
js判断PC端还是移动端
查看>>
远程协助
查看>>
BETA 版冲刺前准备
查看>>
欧拉函数
查看>>
Ubuntu Kylin 14.04下配置JDK1.8
查看>>
Unable to locate package错误解决办法
查看>>
Linux常用命令总结
查看>>
2013.5.29
查看>>
Fiddler实现手机抓包——小白入门(转载csdn)
查看>>
Scrum实施日记 - 一切从零开始
查看>>
Windows中安装Emacs
查看>>
vim tab四个空格修改
查看>>
C#面向对象编程 封装 继承 多态
查看>>
一gradle创建SSM项目——依赖包
查看>>
java中创建对象的方式
查看>>
(转载)在WinForm中使用GMap.Net地图插件
查看>>
安装xampp出错,windows找不到-n ?
查看>>