ZOJ 3846GCD Reduce(数学)
来源:互联网 发布:混合蛙跳算法有什么用 编辑:程序博客网 时间:2024/06/06 18:49
给出一个序列,你可以将任意两个数字替换成他们的最大公约数,问需要几次操作可以都变成1.
可以知道该问题有解的充必条件为gcd(a1,a2,a3....an)=1,
#include<iostream>#include<cstdio>#include<set>#include<string>#include<string.h>#include<cstring>#include<vector>#include<map>#include<queue>#include<stack>#include<cctype>#include<algorithm>#include<sstream>#include<utility>#include<cmath>#include<functional>#define mt(a) memset(a,0,sizeof (a))#define fl(a,b,c) fill(a,b,c)#define SWAP(a,b,t) (t=a,a=b,b=t)#define inf 1000000000+7using namespace std;typedef long long ll;#define sp system("pause")int aa[100000+20];int ansa[100000*3];int ansb[100000*3];int gcd(int x,int y){return y==0?x:gcd(y,x%y);}int main(){int n;int cot=0;while(cin>>n){cot++;int flag=0,ans=-1;scanf("%d",&aa[0]);int gc=aa[0];int number=0;if(gc==1)flag=1;for(int i=1;i<n;i++){scanf("%d",&aa[i]);gc=gcd(gc,aa[i]);if(gc==1)flag=1;}if(!flag){printf("Case %d: -1\n",cot);}else {printf("Case %d: %d\n",cot,2*(n-1));for(int i=1;i<n;i++){printf("%d %d\n",i,i+1);}for(int i=n-1;i>=1;i--){printf("%d %d\n",i,i+1);}}cout<<endl;}return 0;}
0 0
- ZOJ 3846GCD Reduce(数学)
- ZOJ 3846 GCD Reduce
- zoj 3846 GCD Reduce
- Zoj 3846-GCD Reduce(数论)
- zoj 3846 GCD Reduce(数论)
- ZOJ(3846)——GCD Reduce
- ZOJ :: GCD Reduce
- ZOJ 4846 GCD Reduce (数学分析题)
- zoj 3868 GCD Expectation(数学)
- 【ZOJ】4846 GCD Reduce(求n个数的最大公约数)
- GCD Reduce
- ZOJ3846 GCD Reduce 数论
- 数学 gcd
- zoj 1577 GCD & LCM
- ZOJ 1577 GCD & LCM
- ZOJ 1577 GCD & LCM
- ZOJ 1577 - GCD & LCM
- ZOJ 1577 GCD & LCM
- 20160324.2
- 比较15个数的大小1
- 2016.3.24(2)
- 《2015年中国邮件营销行业数据报告》
- 【Android】webview javascript 注入方法
- ZOJ 3846GCD Reduce(数学)
- 来段代码提提神-Java读取config.properties文件中的key=value
- vb作业
- C++学习笔记2——对象数组与对象指针
- Litepal创建表时报错 an exception that indicates there was an error with sql parsing or execution
- FFmpeg深入分析之零-基础
- 3个数排序
- VB-排序题
- 红糖水白糖水的转换--郝汉森