蓝桥杯备考:DFS之选数问题

cpp 复制代码
#include <iostream>
#include <vector>
using namespace std;
int n,k;
const int N = 30;
int a[N];
int path,cnt;
bool isprime(int x)
{
	if(x<=1) return false;
	else
	{
		for(int i = 2;i<x;i++)
		{
			if(x%i == 0)
			return false;
		}
		return true;
	}
}
void dfs(int pos,int begin)
{
	if(pos>k)
	{
		if(isprime(path))
		cnt++;
		return;
	}
	for(int i = begin;i<=n;i++)
	{
		path+=a[i];
		dfs(pos+1,i+1);
		path-=a[i];
	}
}
int main()
{
	cin >> n >> k;
	for(int i = 1;i<=n;i++)
	{
		cin >> a[i];
	}
	dfs(1,1);
	cout << cnt << endl;
	
	
	return 0;
}
相关推荐
萧毅寒6 小时前
leetcode第40题组合总和Ⅱ
算法·leetcode·职场和发展
boligongzhu7 小时前
LeetCode 873. Length of Longest Fibonacci Subsequence(2025/2/27每日一题)
算法·leetcode·职场和发展
wuqingshun3141598 小时前
蓝桥杯 团建
c语言·数据结构·c++·算法·蓝桥杯·深度优先
会编程的果子君8 小时前
蓝桥杯好题推荐--高精度加法
职场和发展·蓝桥杯
_Itachi__11 小时前
LeetCode 热题 100 53. 最大子数组和
算法·leetcode·职场和发展
双人徐木子李11 小时前
蓝桥杯B15-4,R格式
算法·蓝桥杯·r语言
萧毅寒11 小时前
leetcode第216题组合总和Ⅲ
算法·leetcode·职场和发展
邴越11 小时前
LeetCode 2 - 两数相加
算法·leetcode·职场和发展
道玄程序员12 小时前
求职之路——面试技巧与注意事项
面试·职场和发展