【CF】【318div2C】【整数表示】【gcd】
来源:互联网 发布:西安交通大学网络教育 编辑:程序博客网 时间:2024/04/29 14:41
Limak is an old brown bear. He often plays poker with his friends. Today they went to a casino. There are n players (including Limak himself) and right now all of them have bids on the table. i-th of them has bid with size ai dollars.
Each player can double his bid any number of times and triple his bid any number of times. The casino has a great jackpot for making all bids equal. Is it possible that Limak and his friends will win a jackpot?
First line of input contains an integer n (2 ≤ n ≤ 105), the number of players.
The second line contains n integer numbers a1, a2, ..., an (1 ≤ ai ≤ 109) — the bids of players.
Print "Yes" (without the quotes) if players can make their bids become equal, or "No" otherwise.
475 150 75 50
Yes
3100 150 250
No
因为任何一个整数都可以表示成 素因子的积。 所以x = 2^k1 * 3^k2 * 5^k3 * 7^k4
然后 这些数通过*2 *3最终的结果一样 所以等价于 每个数的k3,k4.....kn 都一样。 因为前面的2和3的幂次可以取得非常大。比如2^11111111111 * 3^1111111111。
所以希望 gcd(x,y) = 2^(min(kx1,ky1)) * 3^(min(kx2,ky2) * 5^k3 * 5^k4.
然后等价于x / gcd(x,y) 的因子只有2,3。
#include <iostream>#include <cstring>#include <cmath>#include <queue>#include <stack>#include <list>#include <map>#include <set>#include <string>#include <cstdlib>#include <cstdio>#include <algorithm>using namespace std; #define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=n-1;i>=a;i--)#define mp push_backint gcd(int a,int b){return a==0?b:gcd(b%a,a);}int arr[100010];int main(){int n;while(scanf("%d",&n) != EOF){int gg = 0;for(int i=0;i<n;i++){scanf("%d",&arr[i]);gg = gcd(gg,arr[i]);}bool ok = true;for(int i=0;i<n;i++){arr[i] = arr[i] / gg;while(arr[i] % 2 ==0) arr[i] /= 2;while(arr[i] % 3 ==0) arr[i] /= 3;if(arr[i] != 1){ok = false;break;}}if(ok) printf("Yes\n");else printf("No\n");} return 0;}
- 【CF】【318div2C】【整数表示】【gcd】
- CF #377div2C Sanatorium
- CF——#182div2C
- CF——#178 div2C(数论)
- cf #360 div2C - NP-Hard Problem(二分图判断+输出)
- 整数表示
- 整数表示
- 整数表示
- cf 75 C(gcd)
- cf 582A GCD Table
- cf 75c Modified GCD
- CF 271F,区间gcd
- CF-Marco and GCD Sequence
- 罗马数表示整数
- 二进制整数表示法
- 整数表示---整型数据类型
- [hoj]整数的表示
- 整数表示法
- Epoll模型详解
- Web前端性能优化经验分享
- TableLayout表格简单的使用
- iOS触摸和手势
- 两个栈实现一个队列
- 【CF】【318div2C】【整数表示】【gcd】
- 洗脑有术:如何防止被洗脑?
- Centos下Yum安装PHP5.5,5.6
- K-近邻分类算法KNN
- zzuli OJ 1082: 敲7(多实例测试)
- 为了学习android,开始写博客了
- linux学习--扫盲笔记
- hashCode
- 高性能网站建设的14个原则