洛谷oj---1036 选数

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 08:16   11   0

题目:https://www.luogu.org/problemnew/show/P1036

简单的dfs,这类题目要引起重视。

bool isPrime(int num){ //判断是否是质数
if(num==1) return false;
for(int i=2;i<=(int)sqrt(num);i++){
if(num%i==0) return false;
}
return true;
}

#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
int a[30];
bool isPrime(int num){
 if(num==1) return false;
 for(int i=2;i<=(int)sqrt(num);i++){
  if(num%i==0) return false;
 }
 return true;
}
void dfs(int k,int sum,int start,int end,int &count){
 if(k==0){
  if(isPrime(sum)) count++;
  return;
 }
 for(int i=start;i<end;i++){
  dfs(k-1,sum+a[i],i+1,end,count);
 }
}
int main(){
 int n,k;
 scanf("%d%d",&n,&k);
 for(int i=0;i<n;i++){
  scanf("%d",a+i);
 }
 int count=0;
 dfs(k,0,0,n,count);
 printf("%d",count);
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP