1 条题解
-
0
自动搬运
来自洛谷,原作者为

翟绪尧
这家伙不太懒,但也不想留下什么搬运于
2025-08-24 21:55:37,当前版本为作者最后更新于2017-12-25 10:55:05,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
正解:只有是6的倍数就是第二个人赢,否则第一个人赢
解释:
一。首先,1,2,3,4,5都可以一次取到,当n=6时,第一个人先取1-5个,无论怎么取,第二个人全去走就赢了。
二。对于6的倍数,一定不能是质数的K次方,证明:先是除2以外的质数都是奇数,而奇数乘奇数都是奇数,故6的倍数全不是n的K次方;对于2,由于6中存在因数3,故6*n也不是2的K次方。
三。对于12,第一个人取1-5个,第二个人直接取到剩下6个,就变成了情况一,第一个人取不到6个,若去6个以上,则直接败;
四。归纳6*n。第一个人无法去6的倍数个,第二个人只要将数压倒6*m(m<n)就会慢慢推到情况二,就又是第一个人输。
五。对于非6的倍数,第一个人只要去1-5个,使之变成6的倍数,就变成情况四了。
综上:正解成立。
良心AC代码,勿复制
#include<iostream> using namespace std; int main() { int n,a; cin>>n; for(int i=1;i<=n;i++) { cin>>a; if(a%6==0)cout<<"Roy wins!"<<endl; else cout<<"October wins!"<<endl; } }
- 1
信息
- ID
- 2933
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者