蓝桥杯备考: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;
}
相关推荐
wuhen_n10 小时前
LeetCode -- 1:两数之和(简单)
javascript·算法·leetcode·职场和发展
Jeremy爱编码12 小时前
leetcode课程表
算法·leetcode·职场和发展
元亓亓亓14 小时前
LeetCode热题100--152. 乘积最大子数组--中等
算法·leetcode·职场和发展
Jeremy爱编码16 小时前
leetcode热题腐烂的橘子
算法·leetcode·职场和发展
cnxy18817 小时前
围棋对弈Python程序开发完整指南:步骤3 - 气(Liberties)的计算算法设计
python·算法·深度优先
Swift社区20 小时前
LeetCode 458 - 可怜的小猪
算法·leetcode·职场和发展
falldeep1 天前
LeetCode高频SQL50题总结
数据结构·数据库·sql·算法·leetcode·职场和发展
千寻girling1 天前
计算机组成原理-全通关源码-实验(通关版)---头歌平台
前端·面试·职场和发展·typescript·node.js
小熳芋1 天前
单词搜索- python-dfs&剪枝
算法·深度优先·剪枝
a努力。1 天前
字节Java面试被问:系统限流的实现方式
java·开发语言·后端·面试·职场和发展·golang