求助
查看原帖
求助
1065753
__bjxx0201__楼主2024/6/26 20:19

0分代码qwq:

#include <bits/stdc++.h>
using namespace std;
long long ans,n,a[50],k;
inline int read () {int s=0,w=0;char c=getchar ();while (!isdigit (c)){w|=(c=='-');c=getchar ();}while (isdigit (c)) {s=(s<<1)+(s<<3)+(c^48);c=getchar ();}return w?-s:s;}
inline void write (int x) {if (x<0) putchar ('-'),x=-x;if (x>9) write (x/10);putchar (x%10|48);}
bool prime (int x) {
	if (x<2) return false;
    for (int i=2;i*i<=x;i++) 
      if (x%i==0) return false;
    return true;
}
void dfs (int p,int s,int id) {//已选p,和为s,位置为id 
	if (p==k) {
		if (prime (s)) ans++;
		return ;
	}
	for (int i=id+1;i<=n;i++) 
	  dfs (p+1,s+a[i],id+1);
	return ;
}
int main() {
	n=read (),k=read ();
	for (int i=1;i<=n;i++) a[i]=read ();
	dfs (0,0,1);
	write (ans);
	return 0;
}
2024/6/26 20:19
加载中...