標籤:
解題思路:其實就是找能組成的最大集合。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 #include<set> 9 #include<deque>10 #include<stack>11 #include<bitset>12 #include<algorithm>13 #include<functional>14 #include<numeric>15 #include<utility>16 #include<sstream>17 #include<iostream>18 #include<iomanip>19 #include<cstdio>20 #include<cmath>21 #include<cstdlib>22 #include<cstring>23 #include<ctime>24 #define LL long long25 26 using namespace std;27 int t; 28 int n ;29 int gcd(int a, int b )30 {31 return b == 0 ?a:gcd(b,a%b);32 }33 int main(){34 cin >> t; 35 int tmp ; 36 while(t--){37 cin >> n;38 cin >> tmp ;39 int ans = tmp ; 40 int mx = tmp ;41 for(int i = 1;i < n;i ++)42 {43 cin >> tmp;44 ans = gcd(ans,tmp);45 mx =max(tmp,mx);46 }47 if((mx/ans - n)%2 ==0 )48 printf("Lose\n");49 else printf("Win\n");50 }51 return 0;52 }View Code
ACdream HUT新生摸底訓練賽 E - 娜娜夢遊仙境系列——莫名其妙的插曲 數論