博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[SPOJ2021] Moving Pebbles
阅读量:4956 次
发布时间:2019-06-12

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

[SPOJ2021] Moving Pebbles

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

Solution

  • n为偶数,这些石子堆都是可以两两配对的石子堆,后手必胜,那么无论如何先手对它移动,后手都可以对另一个配对的石子堆做相应的调整.
  • n为偶数,但是石子不可以两两配对,先手必胜,可以令最高堆与最低堆相同,然后将其他堆的石子数补成两两相同。
  • \(n\)为奇数,先手必胜,因为先手一定可以操作最高的一堆使得局面变成偶数堆且两两堆数相同。

错误

正确

Code

#include 
#include
int a[100005];int read() { int x = 0; char c = getchar(); while (c < '0' || c > '9') c = getchar(); while (c >= '0' && c <= '9') { x = (x << 3) + (x << 1) + (c ^ 48); c = getchar(); } return x;}int main() { int n = read(); for (int i = 1; i <= n; ++i) a[i] = read(); std::sort(a + 1, a + n + 1); for (int i = 1; i <= n; i += 2) if(a[i] != a[i+1]){ puts("first player"); return 0; } puts("second player"); return 0;}

转载于:https://www.cnblogs.com/LMSH7/p/9573410.html

你可能感兴趣的文章
组合博弈入门
查看>>
Web框架之Tornado
查看>>
json兼容ie8
查看>>
zepto源码研究 - zepto.js - 1
查看>>
php操作memcache的使用【转】
查看>>
MVC网址路由与生命周期
查看>>
.NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
查看>>
经典案例, 每隔一分钟执行一次的定时任务, 用 thread+ while(true) 还是timer
查看>>
面向对象
查看>>
leetcode Lowest Common Ancestor of a Binary Tree
查看>>
安装NoSQL数据库类型的redis 和 memcache数据库及其扩展
查看>>
返璞归真vc++之字符类型
查看>>
IIS7增加mine类型,以便可以访问apk
查看>>
基于MVC4+EF5.0+Ajax+Json+CSS3的简单注册页面(get&post)
查看>>
BinaryReader 和BinaryWriter 读写类对象
查看>>
C# 翻页设计:首页,上一页,下一页,末页 ,跳转
查看>>
UIBezierPath 的使用
查看>>
日语常用计算机词汇
查看>>
PHP书写效率问题
查看>>
WPF Silverlight异同明细【推荐】
查看>>