50| 选数
#include bits/stdc.h using namespace std; int n, k, ans, sum; // ans 最终答案 const int N 23; int a[N]; bool st[N]; bool isprime(int x) { if (x 1) return false; for (int i 2; i sqrt(x); i) if (x % i 0) return false; return true; } void dfs(int id, int cnt) { // cnt 当前选了几个数 // 终止条件选够 k 个 if (cnt k) { if (isprime(sum)) ans; return; } for (int i id; i n; i) { if (st[i]) continue; st[i] true; sum a[i]; dfs(i 1, cnt 1); sum - a[i]; st[i] false; } } int main() { cin n k; for (int i 1; i n; i) cin a[i]; dfs(1, 0); // 从第1个数开始已选0个 cout ans endl; return 0; }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2469356.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!