社区讨论

67分蒟蒻求助 #1#4寄了

P1036[NOIP 2002 普及组] 选数参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo8hllzg
此快照首次捕获于
2023/10/27 18:45
2 年前
此快照最后确认于
2023/10/27 18:45
2 年前
查看原帖
CPP
#include<bits/stdc++.h> 

using namespace std;
int n,r,book[10005],a[10005],ans[10005],idx=0,user[10005];

void dfs(int x){
   if(x>r){
   	for(int i=1;i<=r;i++){
   		ans[++idx] = a[i];
   	}
   	return ;
   }
   else{
   	for(int i=1;i<=n;i++){
   		if(book[i]==0 and a[x-1]<user[i]){
   			book[i]=1;
   			a[x] = user[i];
   			dfs(x+1);
   			book[i] = 0;
   		}
   	}
   }
}
int main(){
   cin>>n>>r;
   for(int i=1;i<=n;i++){
   	cin>>user[i];
   }
   dfs(1);
   int i = 1;
   int count = 0;
   while(ans[i] != 0){
   	int sum = 0;
   	for(int j=1;j<=r;j++){
   		sum += ans[i++];
   	} 
   	bool flag = true;
   	for(int j=2;j<=sqrt(sum);j++){
   		if(sum%j==0){
   			flag = false;
   		}
   	}
   	if(flag){
   		count++;
   	}
   }
   cout<<count;
   return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...