1. 程式人生 > >Codeforces - 346A - Alice and Bob - 簡單數論

Codeforces - 346A - Alice and Bob - 簡單數論

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 - 簡單數論