P1036求助!
  • 板块学术版
  • 楼主theb0t
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/8/29 18:20
  • 上次更新2023/11/3 00:28:35
查看原帖
P1036求助!
997236
theb0t楼主2023/8/29 18:20

原题链接:https://www.luogu.com.cn/problem/P1036

各位dalao求助,为什么我的代码样例输出6啊?

#include <iostream>
using namespace std;

int a[25], book[25], ans[25];
int res = 0;
int n, k;
inline bool prime(int n)
{
	if (n < 2) return false;
	for (int i = 2; i * i <= n; i++)
		if (n % i == 0) return false;
	return true;
}
inline void check()
{
	int s = 0;
	for (int i = 1; i <= k; i++) s += ans[i];
	if (prime(s)) res++;
}
inline void dfs(int ceng)
{
	if (ceng == k + 1)
	{
		check();
		return;
	}
	for(int i=1;i<=n;i++)
		if (!book[i])
		{
			book[i] = 1;
			ans[ceng] = a[i];
			dfs(ceng + 1);
			book[i] = 0;
		}
}
int main()
{
	cin >> n >> k;
	for (int i = 1; i <= n; i++) cin >> a[i];
	dfs(1);
	cout << res << endl;
}
2023/8/29 18:20
加载中...