Codeforces - 346A - Alice and Bob - 簡單數論
阿新 • • 發佈:2019-01-27
force color 有關 觀察 else 一個 %d bsp 證明
http://codeforces.com/problemset/problem/346/A
觀察了一下,猜測和他們的最大公因數有關,除以最大公因數前後結果是不會變的。
那麽怎麽證明一定是有n輪呢?我猜就是因為現在至少有幾個是互質的,所以總是可以構造出1?具體怎麽證明呢?還是看看別人的思路吧……
首先最終停止的狀態一定是一個等差數列,這個是毫無疑問的。設首項為d,那麽肯定停止於d,2d,3d,...,n,那麽很顯然d就是他們的最大公因數啊……對哦?!
#include<bits/stdc++.h> using namespace std; #define ll long long int n;int a[105]; int main(){ scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i]); } int g=a[0]; for(int i=1;i<n;i++){ g=__gcd(g,a[i]); } for(int i=0;i<n;i++){ a[i]/=g; } int maxa=*max_element(a,a+n); int d=maxa-n; if(d%2) puts("Alice"); else puts("Bob"); }
Codeforces - 346A - Alice and Bob - 簡單數論