Pride CodeForces - 892C
2021/6/14 10:21:02
本文主要是介绍Pride CodeForces - 892C,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
原题链接
考察:思维+枚举
思路:
思路应该比较好想,只要存在互质的两对,答案就是数组长度-数组中1的个数.如果不存在,答案就是最短连续子段gcd = 1的长度*2+其他元素个数.
我写的时候认为最短一定是3,实际不是,看下面测试数据:
6
120 120 5 30 15 6
ans = 8.
gcd是可以传递的,因此我认为答案是长度+1是错误的.
Code
#include <iostream> #include <cstring> using namespace std; const int N = 2010; int a[N],n; int gcd(int a,int b) { return b?gcd(b,a%b):a; } int solve() { int cnt =0; for(int i=1;i<=n;i++) if(a[i]==1) cnt++; for(int i=1;i<=n;i++) if(gcd(a[i],a[i-1])==1) return n-cnt; int minv = 0x3f3f3f3f,ans; for(int i=1;i<=n;i++) { int s = a[i]; for(int j=i;j>=1;j--) { s = gcd(a[j],s); if(s==1&&i-j<minv) { minv = i-j; ans = j-1+n-i+2*minv; } } } if(minv<0x3f3f3f3f) return ans; return -1; } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); printf("%d\n",solve()); return 0; }
这篇关于Pride CodeForces - 892C的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享