CF660A -- Co-prime Array
来源:互联网 发布:网上宿迁网络问政 编辑:程序博客网 时间:2024/04/30 00:20
题目大意:给出一个含N个元素的数列,在数列个元素之间可以随意插入任何小于10^9的正整数,每插入一个数算一步,求令这个数列相邻元素互质的最少的操作步数。
好吧,先来看一组奇葩的数据:
1001 1 1 1 2 1 1 1 1 1 2 2 1 1 2 1 2 1 1 1 2 1 1 2 1 2 1 1 2 2 2 1 1 2 1 1 1 2 2 2 1 1 1 2 1 2 2 1 2 1 1 2 2 1 2 1 2 1 2 2 1 1 1 2 1 1 2 1 2 1 2 2 2 1 2 1 2 2 2 1 2 2 1 1 1 1 2 2 2 2 2 2 2 1 1 1 2 1 2 1
Output
191 1 1 1 2 1 1 1 1 1 2 1 2 1 1 2 1 2 1 1 1 2 1 1 2 1 2 1 1 2 1 2 1 2 1 1 2 1 1 1 2 1 2 1 2 1 1 1 2 1 2 1 2 1 2 1 1 2 1 2 1 2 1 2 1 2 1 2 1 1 1 2 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 1 1 2 1 2 1
刚开始理解的是要大于前一项小于后一项,判断了半天,结果超时。。其实这道题还是So Easy的,毕竟是CF的A题。。既然要让这个数列的元素满足两两互质,那么直接在不互质的两个元素之间插入1不就OK了?!!白白浪费那么多时间。。
代码如下:
#include<cstdio> #include<cstring>#include<algorithm> using namespace std; int a[1010],b[1010];int gcd(int x,int y){if(y==0)return x;return gcd(y,x%y);}//求最大公约数 int main(){int n;while(~scanf("%d",&n)){for(int i=0;i<n;i++)scanf("%d",&a[i]);int ans=0;//用来记录步数 int k=0;//记录数列b的个数 for(int i=0;i<n-1;i++){if(gcd(a[i],a[i+1])==1)b[k++]=a[i];//如果互质则直接将该元素赋值给数列b else{ans++;b[k++]=a[i];//不互质的两个数中第一个数仍赋值给b b[k++]=1;//在不互质的第一个数后插入1 }//不互质的第二个数在下一步操作中处理 }b[k++]=a[n-1];//最后一个数,在循环中没考虑到!! printf("%d\n%d",ans,b[0]);for(int i=1;i<n+ans;i++){printf(" %d",b[i]);//输出格式 }printf("\n");} return 0; }
0 0
- CF660A -- Co-prime Array
- CFA. Co-prime Array
- Co-prime Array
- Co-prime Array
- Co-prime Array
- Co-prime Array
- 【codeforces】-660Co-prime Array
- Codeforces 660A Co-prime Array 【水题】
- CodeForces 660A Co-prime Array
- CodeForces-660A-Co-prime Array
- CodeForces 660A Co-prime Array
- codeforces 660A Co-prime Array
- CoderForces 606A Co-prime Array
- 【codeforces 660 A Co-prime Array】
- CodeForces 660A Co-prime Array
- CodeForces 660A Co-prime Array
- Co-prime
- Co-prime
- 机器学习实战笔记——微软小冰的读心术与决策树
- 程序包org.apache.http不存在的解决方法
- 在python中直接调用androguard
- Internet Service Providers
- Android .9图的问题
- CF660A -- Co-prime Array
- jsp post和get区别
- 一些例题的技巧
- LeetCode #132: Palindrome Partitioning II
- Joint Cascade Detection and Alignment & Local Binary Features 阅读笔记
- JavaScript 学习笔记---------(二)
- List集合中的对象根据属性排序
- oracle12创建用户错误ORA-65096: 公用用户名或角色名无效 invalid common user or role name
- Lucene初识(Java开源搜索引擎)