1 条题解

  • 0
    @ 2026-10-25 15:08:46

    思路

    全组两两互质约束与最少组数剪枝,避免只检查组代表。

    参考程序(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    int n,best;vector<int>a,groups[10];int gcd2(int a,int b){return b?gcd2(b,a%b):a;}void dfs(int i,int used){if(used>=best)return;if(i==n){best=used;return;}for(int j=0;j<used;j++){bool ok=true;for(int x:groups[j])if(gcd2(x,a[i])!=1)ok=false;if(ok){groups[j].push_back(a[i]);dfs(i+1,used);groups[j].pop_back();}}groups[used].push_back(a[i]);dfs(i+1,used+1);groups[used].pop_back();}int main(){cin>>n;a.resize(n);for(int &x:a)cin>>x;best=n;dfs(0,0);cout<<best<<'\n';}
    
    • 1

    信息

    ID
    1118
    时间
    1000ms
    内存
    64MiB
    难度
    普及
    标签
    递交数
    1
    已通过
    1
    上传者