社区讨论

测试点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 条回复,欢迎继续交流。

正在加载回复...