2 条题解

  • 0
    @ 2026-4-20 16:12:52
    #include <bits/stdc++.h>
    using namespace std;
    #define d int
    #define For(x,y,z) for(int i=x;i<=y;i+=z)
    d n,k,ans,a[100];
    bool ss(int n){
        int k=sqrt(n);
        if(n<=1) return false;
        for(int i=2;i<=k;i++) if(n%i==0) return false;
        return true;
    }
    void dfs(int deep,int s,int l){
        if(l==k){
            if(ss(s)) ans++;
            return ;
        }
        if(deep==n+1) return ;
        dfs(deep+1,s+a[deep],l+1);
        dfs(deep+1,s,l);
    }
    int main(){
        cin>>n>>k;
        For(1,n,1) cin>>a[i];
        dfs(1,0,0);
        cout<<ans;
        return 0;
    }
    

    信息

    ID
    381
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    0
    上传者