算法进阶指南(DFS和BFS)--- 小猫爬山

2021-05-04 22:30

阅读:719

标签:algorithm   枚举   name   指南   str   win   com   www   cat   

题目链接:小猫爬山

解法一:

#include
#include

using namespace std;

const int N = 20;
int n,m;
int cat[N],sum[N];
int ans=N;

void dfs(int now,int cnt) {
	if(cnt>=ans) return ; //剪枝 
	if(now == n+1) {
		ans = min(ans,cnt);
		return ;
	}
	//枚举当前所有车 
	for(int i=1; i> n >>m;
	for(int i=1; i>cat[i];
	sort(cat+1,cat+n+1);
	reverse(cat+1,cat+n+1);
	dfs(1,0);
	cout

解法二:

#include
#include

using namespace std;

const int N = 20;
int n,m;
int cat[N],sum[N];
int ans=N;

void dfs(int u,int k) {
	if(k>=ans) return ;
	if(u == n) {
		ans = k;
		return ;
	}
	for(int i=0; i> n >>m;
	for(int i=0; i>cat[i];
	sort(cat,cat+n);
	reverse(cat,cat+n);
	dfs(0,0);
	cout

算法进阶指南(DFS和BFS)--- 小猫爬山

标签:algorithm   枚举   name   指南   str   win   com   www   cat   

原文地址:https://www.cnblogs.com/bingers/p/13193949.html


评论


亲,登录后才可以留言!