蓝桥杯备考----->DFS组合型枚举,选数问题

cpp 复制代码
#include <iostream>
using namespace std;
int n, k;
const int N = 25;
int a[N];
int path;
int ret;

bool isprime(int x)
{
	if (x <= 1) return false;
	else
	{
		for (int i = 2; i <= x / i; i++)
		{
			if (x % i == 0)
			{
				return false;
			}
		}
	}
	return true;
}
void dfs(int pos, int begin)
{
	if (pos > k)
	{
		if (isprime(path))
			ret++;
		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 << ret << endl;





	return 0;
}
相关推荐
逆境不可逃4 小时前
LeetCode 热题 100 之 543. 二叉树的直径 102. 二叉树的层序遍历 108. 将有序数组转换为二叉搜索树 98. 验证二叉搜索树
算法·leetcode·职场和发展
Tanecious.7 小时前
蓝桥杯备赛:Day1-奖学金
c语言·c++·蓝桥杯
米粒17 小时前
力扣算法刷题 Day 29
算法·leetcode·职场和发展
wfbcg7 小时前
每日算法练习:LeetCode 125. 验证回文串 ✅
算法·leetcode·职场和发展
青槿吖7 小时前
第一篇:Redis集群从入门到踩坑:3主3从保姆级搭建+核心原理一次性讲透|面试必看
前端·redis·后端·面试·职场和发展·bootstrap·html
c++逐梦人8 小时前
DFS剪枝与优化
算法·深度优先·剪枝
荣光属于凯撒8 小时前
P3040 [USACO12JAN] Bale Share S
算法·深度优先
第二只羽毛9 小时前
第六章 图
大数据·数据结构·算法·深度优先·图论·广度优先·宽度优先