求助大佬
查看原帖
求助大佬
615297
frankfan7707楼主2022/5/2 16:38

P1036 [NOIP2002 普及组] 选数

本蒟蒻写了一个自认为对的代码,可是才16分

请大佬帮忙看一下哪里错了,感谢!

#include<bits/stdc++.h>
using namespace std;
int n,k,x[205],ans,a[205],vis[205];
bool isprime(int n){
	if(n==0 or n==1)return 0;
	for(int i=2;i<n;i++)if(n%i==0)return 0;
	return 1;
}
void dfs(int pos){
	if(pos==k+1){
		int temp=0;
		for(int i=0;i<=k;i++){
			temp+=x[a[i]];
		}
		if(isprime(temp))ans++;
		return;
	}
	for(int i=1;i<=n;i++){
		if(!vis[i]){
			vis[i]=1;
			a[pos]=i;
			dfs(pos+1);
			//vis[i]=0;
		}
	}
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>x[i];
	}
	dfs(1);
	cout<<ans;
} 
2022/5/2 16:38
加载中...