E - 娜娜梦游仙境系列——莫名其妙的插曲

    E - 娜娜梦游仙境系列——莫名其妙的插曲

E - 娜娜梦游仙境系列——莫名其妙的插曲

Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others)

Problem Description

娜 娜因为帮桃花村民们解决了一大难题而受到村民们的尊敬,不过由于娜娜还想继续探索这个神奇的世界,只好恋恋不舍地与村民告别。当娜娜离开村庄的一刻,娜娜 失忆了!她不记得桃花村的一切,她不记得之前吃了很多糖果,她不记得她为了过湖而跳了半天,甚至她连自己的名字都不记得了!娜娜盲目地四处溜达,突然迎面 走来了一个白马王子,他问:“你是Alice吗?”。娜娜心想:“Alice?好熟的名字啊,难道这就是我的名字吗?",便回答:”是的。请问您是?“白 马王子很高兴地说:”我叫Bob,我找你找了一辈子了,没有你,我总是被父王忘记,我们回王宫吧!"于是娜娜就迷迷糊糊地被带到了王宫。

国王:“你就是Alice?怎么士别三日,你变痴呆了啊,你先和我的儿子Bob先玩一玩游戏,我看看你是不是脑子有问题。”娜娜为了证明自己脑子没问题,只好与Bob玩起了游戏。

游戏规则很简单,一开始有一个集合,集合里有n个不同的数,然后Alice(娜娜)与Bob轮流进行操作,每人都可以任意选择两个数a,b,不妨设 a>b,不过要求a-b不在集合中,把a-b放入集合。如果轮到某人,无法进行任何操作,则该人输掉游戏。作为职业博弈选手,娜娜即使失忆了也能凭 着身体的直觉去进行最优操作。那么问,当Alice(娜娜)与Bob都沿着最优策略进行,女士优先(即娜娜先手),最终谁会获胜?

Input

多组数据,首先是一个正整数t(t<=20),表示数据的组数

对于每组数据,首先是一个整数n(1<=n<=1,000),然后是n个整数x[i](0<x[i]<=1,000,000,000),表示集合。保证集合元素不会出现相同。

Output

对于每组数据,若Alice(娜娜)最终胜利,输出"Win"

若Bob最终胜利,输出"Lose"

若无法分出胜负,输出"Draw",(均不包括双引号,注意大小写,建议复制)

Sample Input

2
5
1 2 3 4 5
5
1 2 3 4 6

Sample Output

Lose
Win

Hint

样例1,一开始无论娜娜选择哪两个元素,其差值均包括在集合中,故娜娜无法操作,Bob胜利,输出Lose

样例2,一开始娜娜只能选择1和6这两个元素,并把6-1=5放入集合中,则集合变为1,2,3,4,5,6 Bob无法操作,Alice(娜娜)胜利,输出Win

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cmath>
 5 #include <algorithm>
 6 #include <string>
 7 #include <vector>
 8 #include <set>
 9 #include <map>
10 #include <stack>
11 #include <queue>
12 #include <sstream>
13 #include <iomanip>
14 using namespace std;
15 typedef long long LL;
16 const int INF = 0x4fffffff;
17 const double EXP = 1e-5;
18 const int MS = 1005;
19 const int SIZE = 10005;
20
21 int num[MS];
22 int flag[MS];
23 int n;
24
25 int gcd(int a,int b)
26 {
27       return b==0?a:gcd(b,a%b);
28 }
29
30 int main()
31 {
32       int T;
33       scanf("%d",&T);
34       while(T--)
35       {
36             scanf("%d",&n);
37             for(int i=0;i<n;i++)
38                   scanf("%d",&num[i]);
39             int g=num[0];
40             for(int i=1;i<n;i++)
41                   g=gcd(g,num[i]);
42             int maxv=-INF;
43             for(int i=0;i<n;i++)
44             {
45                   num[i]/=g;
46                   if(num[i]>maxv)
47                         maxv=num[i];
48             }
49             int cnt=0;
50             memset(flag,0,sizeof(flag));
51             for(int i=0;i<n;i++)
52                   if(flag[i]==0)
53             {
54                   flag[i]=1;
55                   cnt++;
56             }
57             cnt=maxv-cnt;
58             if(cnt&1)
59                   printf("Win\n");
60             else
61                   printf("Lose\n");
62
63       }
64       return 0;
65 }
时间: 2024-10-10 04:19:52

E - 娜娜梦游仙境系列——莫名其妙的插曲的相关文章

acdream 1684 娜娜梦游仙境系列——莫名其妙的插曲 (gcd)

题意:一开始有一个集合,集合里有n个不同的数,然后Alice(娜娜)与Bob轮流进行操作,每人都可以任意选择两个数a,b,不妨设a>b,不过要求a-b不在集合中,把a-b放入集合(集合元素个数只增不减).如果轮到某人,无法进行任何操作,则该人输掉游戏.当Alice(娜娜)与Bob都沿着最优策略进行,娜娜先手,最终谁会获胜? 思路:减来减去的,跟最大公约数GCD差不多.此题没有什么最优的策略,都是平等的.用的也不是博弈知识. 最后不能操作的局面一定是{1g, 2g,3g......xg},3g表示

ACdream HUT新生摸底训练赛 E - 娜娜梦游仙境系列——莫名其妙的插曲 数论

解题思路:其实就是找能组成的最大集合.max(a[1],a[2],a[3].........a[n])/gcd(a[1],a[2],a[3],......a[n]) 解题代码: 1 // File Name: e.cpp 2 // Author: darkdream 3 // Created Time: 2015年04月13日 星期一 13时56分11秒 4 5 #include<vector> 6 #include<list> 7 #include<map> 8 #i

G - 娜娜梦游仙境系列——梦醒

G - 娜娜梦游仙境系列——梦醒 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others)     Special Judge Submit Status Problem Description 娜娜离开了这个王国,走向远方,在旷野上,娜娜看到了一个大时钟,上面的时针分针秒针都在缓缓转动,那只挥着翅膀的天使又出现了,天使说:“外面天已经亮了,娜娜你别睡过头哟~”,娜娜问:“我怎样才能醒过

D - 娜娜梦游仙境系列——村民的怪癖

D - 娜娜梦游仙境系列——村民的怪癖 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 娜娜费劲九牛二虎之力终于把糖果吃完了(说好的吃不完呢?骗人,口亨~),于是,缘溪行,忘路之远近.忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷,娜娜甚异之.复前行,欲穷其林.林尽水源,便得一山,山有小口,仿佛若有光.便

F - 娜娜梦游仙境系列——多民族王国

F - 娜娜梦游仙境系列——多民族王国 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 娜娜好不容易才回忆起自己是娜娜而不是什么Alice,也回忆起了自己要继续探索这个世界的目标,便偷偷溜出皇宫.娜娜发现这个王国有很多个民族组成,每个民族都有自己的方言,更要命的是这些方面差别还很远,这就导致这个王国的人民交流十

C - 娜娜梦游仙境系列——吃不完的糖果

C - 娜娜梦游仙境系列——吃不完的糖果 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 娜娜好不容易才在你的帮助下"跳"过了这个湖,果然车到山前必有路,大战之后必有回复,大难不死,必有后福!现在在娜娜面前的就是好多好多的糖果还有一些黑不溜秋的东西!不过娜娜眼中只有吃不完的糖果!娜娜高兴地快要蹦起来了

A - 娜娜梦游仙境系列——诡异的钢琴

A - 娜娜梦游仙境系列——诡异的钢琴 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 从前,有一个ACdream王国,王国里住着一位公主,她叫娜娜,娜娜公主有一天做了一个很长很长的梦~她说她从来没有遇到过这些奇妙的东西~ 现在站在娜娜面前的是一台钢琴,这是一台看上去很正常的钢琴,上面有88个键(频率从27赫兹

B - 娜娜梦游仙境系列——跳远女王

B - 娜娜梦游仙境系列——跳远女王 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Problem Description 娜 娜觉得钢琴很无趣了,就抛弃了钢琴,继续往前走,前面是一片湖,娜娜想到湖的对岸,可惜娜娜找了好久都没找到小桥和小船,娜娜也发现自己不是神仙,不能像 八仙过海一样.正当娜娜发愁的时候,娜娜发现湖上面有一些石头!娜娜灵机一动,发现可以沿着石头跳吖跳吖,这样

ACdream HUT新生摸底训练赛 C 娜娜梦游仙境系列——吃不完的糖果 DP

解题思路:环形数组最大字串,穿过和不穿过的DP 解题代码: 1 // File Name: c.cpp 2 // Author: darkdream 3 // Created Time: 2015年04月12日 星期日 19时52分24秒 4 5 #include<vector> 6 #include<list> 7 #include<map> 8 #include<set> 9 #include<deque> 10 #include<st