#include<bits/stdc++.h> using namespace std; int gcd(int a, int b) { if (b == 0)return a; else return gcd(b, a%b); } int flag[1000]; int getFather(int x) { if (flag[x] == -1)return x; else { int tmp = getFather(flag[x]); flag[x] = tmp; return tmp; } } int main() { int n; cin >> n; vector<int>sugar(n); vector<int>nums(n); for (int i = 0; i < n; i++) { cin >> sugar[i]; flag[i] = -1; nums[i] = 1; } for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { if (gcd(sugar[i], sugar[j]) > 1) { int a = getFather(i); int b = getFather(j); if (a != b) { flag[a] = b; nums[b] += nums[a]; } } } } int res = 0; for (int i = 0; i < n; i++) res = max(res, nums[i]); cout << res << endl; return 0; } 我用并查集做的,也是70%
点赞 2

相关推荐

Lorn的意义:你这标个前端是想找全栈吗?而且项目确实没什么含金量,技术栈太少了,边沉淀边找吧 现在学院本想就业好一点四年至少得高三模式两年加油吧
点赞 评论 收藏
分享
06-18 13:28
已编辑
门头沟学院 Web前端
爱睡觉的冰箱哥:《给予你300的工资》,阴的没边了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务