[挑战程序设计]POJ2386

网友投稿 1022 2022-09-01

[挑战程序设计]POJ2386

[挑战程序设计]POJ2386

深度优先便利:

给定整数a1到an,选出若干数和为k。

思路是判断每个数加或者不加,然后深度搜下去。

int a[MAX_N];int n,k;bool dfs(int i,int sum){//已经走到了节点i,和为sum,然后向后分支。 //推出循环的条件 if(i==n) return sum==k; //不加a[i]的情况 if(dfs(i+1,sum))return true; //加上a[i]的情况 if(dfs(i+1,sum+a[i])) return true; return false;}void solve(){ if(dfs(0,0)) printf("Yes\n"); else printf("No\n");}

POJ2396

#include#include#include #include using namespace std;#define MAX_N 100#define MAX_M 100int N,M;char field[MAX_N[MAX_M+1];void dfs(int x,int y){ filed[x][y]='.'; for(int dx=-1;dx<=1;dx++){ for(int dy=-1;dy<=1;dy++){ int nx=x+dx,ny=y+dy; if(0<=nx&&nx

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:php 命名空间(namespace)原理与用法实例小结(php是什么意思)
下一篇:leetcode371. Sum of Two Integers
相关文章

 发表评论

暂时没有评论,来抢沙发吧~