
DFS
fookwood
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ZOJ 2100 Seeding(深搜)
<br />这几天心情很不好,不知怎的,做几个搜索练手吧。<br /> <br />Tom想给农田播种,为了不伤害机器 ,他不能走有石头的‘S’,但是又不能走已经播过的地,问他能不能把所有的地都播完。<br /> <br />据说是十分水的一个搜索,要加深对递归的理解,也得感性认识回溯。<br /> <br />#include<stdio.h> char map[8][8]; int visited,flag; int n,i,j,m; void dfs(int x,int y) {原创 2010-07-18 17:18:00 · 1105 阅读 · 2 评论 -
ZOJ 1456 Minimum Transport Cost (dijkstra+dfs)
如果只求最短路径,那么这个题水的不能再水了,淡关键是他还要输出字典序最短的最短路径,这不知难倒了多少人。刚开始的时候,我想要把说有的最短路径都找出来,但是找不到合适的方法,未果。之后某媛提示可以用dfs去找所有路径,,,恍悟~dfs在找路径的时候每次都是从最字典序小的那个开始,所以当你找到一条符合题意的最短路径的时候,它一定就是我们需要的路径。其中只需要一个数组去储存路径信息。当第一次搜索到合适的时候就输出。需要注意的地方:1、输出时候有无数个空格,要注意是否一致。我因此WA了一次。2、每个城市 i 通过也原创 2010-07-31 15:12:00 · 1487 阅读 · 8 评论 -
ZOJ 1457 Prime Ring Problem(DFS)
<br />数据很小,本来以为能轻松过,但是把数据输入后长时间不出结果,想必然超时。10s啊。。。<br /> <br />然后从网上得知奇数的时候不能出来正常结果,所以时间省了很多,然后又发现看错题了,数据是小于20的,也就是在2到18之间,悲剧,提交之后AC。<br /> <br />dfs函数竟然一下子写成功了,罕见。。。。<br /> <br /> <br />#include<stdio.h> #include<stdio.h> #include<string.h> #include<mat原创 2010-08-07 23:18:00 · 616 阅读 · 0 评论 -
ZOJ 2412 Farm Irrigation
<br />农田需要灌溉,农田分为好多小块,每一块都有他的固定管道。可以与周围的管道相通。<br /> <br />类似于floodfill,就是管道相通的几块农田可以用一个水源,求最少需要多少水源才能使所有的农田得到灌溉。<br /> <br />#include<stdio.h> #include<stdlib.h> #include<string.h> int n,m; struct node { int is; int up,down,left,right; }e,t原创 2010-11-07 15:36:00 · 1588 阅读 · 3 评论 -
ZOJ 3196 Give me the result
<br />给出n个数,和数字k,对于这n个数他们之前可以有不同的运算。。+-*/<br />注意他的减法是绝对值的运算,还有就是数据类型要用long long,因为运算的数据可能很大,我因此wa了一次<br /> <br />#include<stdio.h> #include<string.h> #include<stdlib.h> long long cases,n,k; long long max,i,j; long long a[10]; long long nok(long long原创 2010-11-09 18:07:00 · 1287 阅读 · 2 评论 -
ZOJ 2734 Exchange Cards
<br />dfs水题,1Y.<br />就是看兑换成给定的值有多少种兑换方法...<br /> <br />#include<stdio.h> #include<stdlib.h> #include<string.h> int n,m; int value[11],num[11]; int sum,count; void dfs(int x) { int i; if( sum == n ) { count ++; return ; } if( sum > n |原创 2010-11-08 23:50:00 · 1967 阅读 · 0 评论