acdream 1684 娜娜梦游仙境系列——莫名其妙的插曲 (gcd)
题意:一开始有一个集合,集合里有n个不同的数,然后Alice(娜娜)与Bob轮流进行操作,每人都可以任意选择两个数a,b,不妨设a>b,不过要求a-b不在集合中,把a-b放入集合(集合元素个数只增不减)。如果轮到某人,无法进行任何操作,则该人输掉游戏。当Alice(娜娜)与Bob都沿着最优策略进行,娜娜先手,最终谁会获胜?
思路:减来减去的,跟最大公约数GCD差不多。此题没有什么最优的策略,都是平等的。用的也不是博弈知识。
最后不能操作的局面一定是{1g, 2g,3g......xg},3g表示3*g,g表示最大公约数。这样的局面就不能操作了,谁遇谁输。经过多少步会产生这样的局面?原序列最大元素big一定不会从集合消失,所以等于xg,那么将这个“死局面”每个元素除以g变成{1,2,3.....x},所以最后局面中有x个元素,而给的序列是n个元素,因每次操作增加一个数,所以功走了x-n步,奇数步为先手赢。
总结,这题需要求的就是gcd,big/gcd后再减去n,再判奇偶定结果。
/*
* this code is made by xcw0754
* Problem: 1684
* Verdict: Accepted
* Submission Date: 2015-07-19 23:45:13
* Time: 0MS
* Memory: 1680KB
*/
#include <bits/stdc++.h>
using namespace std;
const int N=;
int a[N]; int cal(int n)
{
sort(a,a+n);
int tmp=a[];
for(int i=; i<=n; i++)
tmp=__gcd(tmp,a[i]);
return tmp;
}
int main(void)
{
//freopen("e://input.txt", "r", stdin);
int t, n;
cin>>t;
while(t--)
{
scanf("%d",&n);
int big=;
for(int i=; i<n; i++)
{
scanf("%d",&a[i]);
big=max(big,a[i]);
}
int gcd=cal(n);//最大公约数
int ans=big/gcd-n;
if(ans&) puts("Win");
else puts("Lose");
}
return ;
}
AC代码
acdream 1684 娜娜梦游仙境系列——莫名其妙的插曲 (gcd)的更多相关文章
- E - 娜娜梦游仙境系列——莫名其妙的插曲
E - 娜娜梦游仙境系列——莫名其妙的插曲 E - 娜娜梦游仙境系列——莫名其妙的插曲 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 1 ...
- A - 娜娜梦游仙境系列——诡异的钢琴
A - 娜娜梦游仙境系列——诡异的钢琴 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Othe ...
- B - 娜娜梦游仙境系列——跳远女王
B - 娜娜梦游仙境系列——跳远女王 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Other ...
- G - 娜娜梦游仙境系列——梦醒
G - 娜娜梦游仙境系列——梦醒 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- F - 娜娜梦游仙境系列——多民族王国
F - 娜娜梦游仙境系列——多民族王国 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Othe ...
- D - 娜娜梦游仙境系列——村民的怪癖
D - 娜娜梦游仙境系列——村民的怪癖 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Othe ...
- C - 娜娜梦游仙境系列——吃不完的糖果
C - 娜娜梦游仙境系列——吃不完的糖果 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Oth ...
- Cogs 1695. 梦游仙境(分块)
梦游仙境 ★☆ 输入文件:XTTMYXJ.in 输出文件:XTTMYXJ.out 简单对比 时间限制:5 s 内存限制:512 MB [题目描述] 在Asm.def仍然在与人工智能进行艰苦的斗争时,雪 ...
- 各种类型的电影排行榜-movie路线
[最费脑力的14部电影]<盗梦空间>.<记忆裂痕>.<生死停留>.<死亡幻觉>.<禁闭岛>.<穆赫兰道>.<蝴蝶效应> ...
随机推荐
- Jquery 判断浏览器类型
$(function() { //FireFox2及以上 if ($.browser.MozillaSideBar && $.browser.version >= "1 ...
- C# Socket连接超时设置
问题描述: 对于C# Socket没有超时设置的选项,默认情况下进行Socket连接,返回连接失败需要20-30s时间,严重影响用户体验 问题解决: Socket服务器端: Socke ...
- 剑指offer--面试题15
题目:打印单向链表中倒数第k个节点 以下为自己所写代码,未经过验证,只是写个思路... #include<iostream> #include<vector> #include ...
- nenu contest
http://vjudge.net/vjudge/contest/view.action?cid=54393#overview A n^2能过 对第二个n我二分了一下,快了一点点,nlogn #inc ...
- uva 11076
计算出每一位上数字i会出现的次数 累加 #include <cstdio> #include <cstdlib> #include <cmath> #includ ...
- Unity3D开发之“获取IOS设备所在的国家代码"
原地址:http://dong2008hong.blog.163.com/blog/static/469688272014021025578/ 在前一段时间游戏开发中需要实现获取IOS设备所在的国家代 ...
- SpringMVC学习总结(五)——SpringMVC文件上传例子
这是用的是SpringMVC-3.1.1.commons-fileupload-1.2.2和io-2.0.1 首先是web.xml <?xml version="1.0" e ...
- 单例模式与Android
http://blog.csdn.net/ljianhui/article/details/29275655 多线程下的单例模式是不安全的 Android中的单例模式 Android中存在着大量的单例 ...
- Linux基础---开关机与帮助
1.X window与文字模式的切换 通常我们也称文字模式为 终端机接口, terminal或console!Linux预设的情况下, 会提供六个Terminal来让使用者登入,切换的方式为: [Ct ...
- 用于主题检测的临时日志(383b4f88-5dc7-4b08-a585-27104eb4ee7f - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
这是一个未删除的临时日志.请手动删除它.(1e2a0af2-731b-4f82-9aa0-4e2d10ed7a1a - 3bfe001a-32de-4114-a6b4-4005b770f6d7)