2015-08-30 16:16:14
【传送门】
总结:晚上BC、CF连着打... 酸爽- -。比赛速切了前两题,第三题搞了INF久...
赛后把C补了一下。
A题:Brute force
题意:有10^5个数,可以给每个数*2或者*3,可操作无穷次,问最后所有数是否可能相等。
思路:显然就是看所有数除2和3之外的质因数的指数是否一致,把所有数尽量除2,除3,看所有数是否相等即可。
#include <cstdio> #include <ctime> #include <cstring> #include <cstdlib> #include <cmath> #include <vector> #include <map> #include <set> #include <stack> #include <queue> #include <string> #include <iostream> #include <algorithm> using namespace std; #define getmid(l,r) ((l) + ((r) - (l)) / 2) #define MP(a,b) make_pair(a,b) #define PB push_back typedef long long ll; typedef pair<int,int> pii; const double eps = 1e-8; const int INF = (1 << 30) - 1; const int MAXN = 100010; int n; int A[MAXN]; int main(){ scanf("%d",&n); for(int i = 1; i <= n; ++i){ scanf("%d",&A[i]); while(A[i] % 2 == 0) A[i] /= 2; while(A[i] % 3 == 0) A[i] /= 3; } bool flag = true; for(int i = 1; i < n; ++i){ if(A[i] != A[i + 1]){ flag = false; break; } } if(flag) printf("Yes\n"); else printf("No\n"); return 0; }