ZOJ 4846 GCD Reduce (數學分析題)
題目連結 :
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5440
題意:
給定一個長度為n的數列每次可以選個二元組(a[i],a[j])換成他們的最大公約數
然後問能不能再5*n次操作內把他們全部換成1,
分析:
因為每次操作都是換成GCD 因此n數的GCD肯定為1,如果不為1的話肯定不能變成1的
然後隨便構造一種方法就行了,從1到n搞兩遍 一定可以全變成1;
程式碼如下:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 1e5+10;
int a[maxn];
int gcd(int a,int b)
{
if(b) return gcd(b,a%b);
return a;
}
int main()
{
int cas=1,n;
while(~scanf("%d",&n)){
int mmin = 1999999999,num=0;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
if(a[i]<mmin) mmin = a[i];
}
int tmp=a[0];
for(int i=1;i<n;i++)
tmp=gcd(tmp,a[i]);
printf("Case %d: ",cas++);
if(tmp!=1){
puts("-1");
puts("");
continue;
}
else{
printf("%d\n",2*n-2);
for(int i=1;i<n;i++)
printf("1 %d\n",i+1);
for(int i=1;i<n;i++)
printf("1 %d\n",i+1);
puts("");
}
}
return 0;
}
相關文章
- ZOJ 3868 GCD Expectation (容斥+莫比烏斯反演)GC
- GCD原始碼原理分析GC原始碼
- 最大公約數GCDGC
- GCD 學習總結GC
- 學習GCD歷程GC
- 分數的GCD和LCMGC
- 數學分析
- hadoop之 reduce個數控制Hadoop
- Map-Reduce資料分析之二
- iOS GCD學習記錄iOSGC
- reduce()方法的學習和整理
- GCD原始碼分析之再解 sentinelGC原始碼
- GCD原始碼分析之base.hGC原始碼
- 輔導高等數學、微積分、數學分析
- HDU 4497GCD and LCM(素數分解)GC
- 眾數問題分析
- UVA 12716 GCD XOR (數論 gcd和異或不等式)GC
- iOS數學題iOS
- 專題:數學
- HDU 4497 GCD and LCM(拆素數+組合)GC
- HDU 2582 f(n) (組合數的gcd)GC
- C++等差數列(數論、歐幾里得輾轉相除gcd)C++GC
- python 學習--map 和 reduce的使用Python
- GCD Inside: GCD 宏GCIDE
- 除法與GCD演算法的相關分析GC演算法
- GCDGC
- 數對數目;及LIS問題分析
- ZOJ First Digit(瞎搞)Git
- Diablo III ZOJ - 3769
- 2024新高考一卷數學壓軸題分析
- zoj 3811||牡丹江網賽 c題 並查集並查集
- JavaScript reduce()JavaScript
- HDU44979 GCD and LCM (素因子分解+計數)GC
- Python函數語言程式設計-map/reducePython函數程式設計
- Hadoop--map/reduce實現單詞計數Hadoop
- Python學習筆記 - filter,map,reduce,zipPython筆記Filter
- Bloom實現及其數學分析OOM
- 方差分析(高等工程數學)