错哪了 请大佬看看
查看原帖
错哪了 请大佬看看
1420858
_Christina楼主2024/8/27 16:37

此题P1036 [NOIP2002 普及组] 选数 我WA了四个点,请各位大佬帮我看看错在哪了

#include<bits/stdc++.h>
using namespace std;
const int N = 5E6+10;
int n, k;
long long a[30];
int num, kind;
bool vis[30];
int is_prime(int m) {
	if (m < 1) {
		return 0;
	}
	for (int i = 2; i * i < m; i++) {
		if (m % i == 0) {
			return 0;
		}
	}
	return 1;
}
void dfs(int step) {
	if (step > k) {
		int c=is_prime(num);
		if (c) {
			kind++;
		}
		return;
	}
	for (int i = step + 1; i <= n; i++) {
		if (!vis[i]) {
			num += a[i];
			vis[i] = 1;
			dfs(step + 1);
			vis[i] = 0;
		}
	}
}
int main() {
	cin >> n >> k;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	dfs(1);
	cout << kind;
	return 0;
}
2024/8/27 16:37
加载中...