蓝桥杯备考: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;
}
相关推荐
a东方青3 小时前
蓝桥杯 2024 C++国 B最小字符串
c++·职场和发展·蓝桥杯
XiaoyaoCarter5 小时前
每日一道leetcode
c++·算法·leetcode·职场和发展·二分查找·深度优先·前缀树
June`6 小时前
专题二:二叉树的深度搜索(二叉树剪枝)
c++·算法·深度优先·剪枝
软行8 小时前
LeetCode 每日一题 3341. 到达最后一个房间的最少时间 I + II
数据结构·c++·算法·leetcode·职场和发展
独行soc11 小时前
2025年渗透测试面试题总结-阿里云[实习]阿里云安全-安全工程师(题目+回答)
linux·经验分享·安全·阿里云·面试·职场和发展·云计算
程序员小远12 小时前
UI自动化测试方案详解
自动化测试·软件测试·selenium·测试工具·ui·职场和发展·测试用例
小羊在奋斗13 小时前
【LeetCode 热题 100】搜索插入位置 / 搜索旋转排序数组 / 寻找旋转排序数组中的最小值
算法·leetcode·职场和发展
林下清风~16 小时前
力扣hot100——347.前K个高频元素(cpp手撕堆)
算法·leetcode·职场和发展
Swift社区18 小时前
涂色不踩雷:如何优雅解决 LeetCode 栅栏涂色问题
算法·leetcode·职场和发展
洛书千年20 小时前
五月份嵌入式面试总结
面试·职场和发展