算法进阶指南(DFS和BFS)--- 小猫爬山
标签: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
评论