社区讨论
测试点3和7wa了,看了测试点信息,也没问题啊
P1157组合的输出参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mlm2k1dp
- 此快照首次捕获于
- 2026/02/14 16:43 5 天前
- 此快照最后确认于
- 2026/02/14 23:48 5 天前
CPP
#include <bits/stdc++.h>
using namespace std;
int n, k;
bool isprime(int p)
{
if (p <= 1)
return false;
if (p <= 3)
return true;
if (p % 2 == 0 || p % 3 == 0)
return false;
for (int i = 6; i * i <= p; i += 6)
if (p % (i - 1) == 0 || p % (i + 1) == 0)
return false;
return true;
}
vector<int> path;
int cnt = 0;
int sum(vector<int> &a)
{
int sum = 0;
for (size_t i = 0; i < a.size(); i++)
sum += a[i];
return sum;
}
void DFS(vector<int> &a, int index)
{
if (path.size() == k)
{
if (isprime(sum(path)))
cnt++;
return;
}
for (size_t i = index; i < n; i++)
{
path.push_back(a[i]);
DFS(a, i + 1);
path.pop_back();
}
}
int main()
{
cin >> n >> k;
vector<int> a(n);
for (int i = 0; i < n; i++)
{
int t;
cin >> t;
a[i] = t;
};
DFS(a, 0);
cout << cnt << endl;
}
求调
回复
共 1 条回复,欢迎继续交流。
正在加载回复...