南沙C++信奥老师解一本通题 1221:分成互质组

news/2024/9/29 12:28:48

 【题目描述】

给定n个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?

【输入】

第一行是一个正整数n。1 ≤ n ≤ 10。

第二行是n个不大于10000的正整数。

【输出】

一个正整数,即最少需要的组数。

【输入样例】

6
14 20 33 117 143 175

【输出样例】

3
#include <bits/stdc++.h>
using namespace std;
int a[11],path[11][11],ans=0x3f3f3f3f,n; //path[i][j] 行 表示有i组,每组有多少个元素 
int gcd(int a,int b) //辗转相除法
{return a%b==0?b:gcd(b,a%b);
}
void dfs(int pos,int cnt)	//pos为要放当前的位置,cnt存的当前查找到的分组个数 
{if(pos==n+1){ans=min(ans,cnt);return;}//尝试 将某个数放到某其中一组能互质的,不是只要能互质就固定下来,要尝次多组互质都要试下,也要尝试自己单独一组 for(int i=1;i<=cnt;i++) //共有cnt组  一情况情组可以放得下    {bool flag=true;for(int j=1;j<pos;j++){if( path[i][j]!=0 && gcd( a[pos], path[i][j] ) !=1 ) //互质 {flag=false;break;// 不能放到这组 }}if(flag){path[i][pos]=a[pos];dfs(pos+1,cnt);}}//自己单独作为一组path[cnt+1][pos]=a[pos];dfs(pos+1,cnt+1);
}
int main()
{cin>>n;for(int i=1;i<=n;i++)cin>>a[i];dfs(1,1);	//从数组1开始  cout<<ans;return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/66119.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

学期2024-2025-1 学号20241307《计算机基础与程序设计》第一周学习总结

作业信息这个作业属于哪个课程 (2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 (2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标作业正文 (学期2024-2025-1 学号20241307《计算机基础与程序设计》第一周学习总结)教材学习内容总结教材学习中的问题和解…

2024-2025-1 20241404《计算机基础与程序设计》第一周学习总结

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 [2024-2025-1计算机基础与程序设计第一周作业]https://www.cnblogs.com/wangsiwen666/p/18439419这个作业的目标 作业具体目标是让我们能够培养自主思考能力,以及对教材的更深一步的理解,还能够让我…

云平台和虚拟化智慧运维监控,全面提升故障感知与处置能力

随着云计算、大数据技术等发展,虚拟化的普及不断深入,已成为现代IT基础设施建设中不可或缺的组成部分,成为推动企业数字化转型的关键力量。虚拟化的应用在降低软硬件成本和复杂性的同时,如何保障虚拟环境的高效运行,也给运维人员带来了更大的挑战。虚拟化监控运维方案通过…

枫叶冒险岛网页版单机联网安装教程+GM后台

今天给大家带来一款单机游戏的架设:枫叶冒险岛。另外:本人承接各种游戏架设(单机+联网)本人为了学习和研究软件内含的设计思想和原理,带了架设教程仅供娱乐。教程是本人亲自搭建成功的,绝对是完整可运行的,踩过的坑都给你们填上了。如果你是小白也没问题,跟着教程走也是…

杂项乱写 9.29

杂项乱写 9.29因为没有模拟赛,所以考虑捡捡之前漏下的小点。 注:LCA 之后的讲解中可能会出现一些自由的文字,酌情阅读。dfs 序求 LCA 倍增 LCA 的常数还是过于大了,虽然好记但会导致我们在一些数据奇异的题中比其它方式求 LCA 的人的得分要低。 所以就有了这个用 dfs 序求 …

中电金信:保险企业级数据中台解决方案

​ 01业务痛点数据孤岛 公司中的各个部门都有自己的数据,无法有效 连接或整合,不仅导致信息隔阂,还会影响决 策效率和数据分析的准确性,进而影响整个组 织的运营效率和竞争力。数据复用难题 由于系统的限制,相同的数据在不同的系统中 不能复用,导致需要进行数据重复加工,…

Chrome检查更新时出错:无法启动更新检查(错误代码为 4: 0x80070005 – system level)。

1、快捷键 Win+R 输入:services.msc2、找到 “Google 更新服务 (gupdatem)”,改为手动(如果不行就把gupdate也改为手动) 3、再去更新Chrome就可以了

工作繁杂,如何防止工作遗漏遗忘?

来源:tita.com 不知道大家工作中是否有这样的情况:1.工作过程中工作任务经常被打断,打乱正常的工作节奏; 2.因为不方便统一记录工作及工作要求,经常忘记给领导反馈工作进展; 3.因为工作繁多,经常会出现工作遗漏遗忘的现象。 …… 如果你的工作计划出现了这样的问题,就是…