深搜算法对于程序员来讲是必会的基础,不仅要会,更要熟练。ACM竞赛中,深搜也牢牢占据着很重要的一部分。本文用显式栈(非递归)实现了图的深度优先遍历,希望大家可以相互学习。 栈实现的基本思路是将一个节点所有未被访问的“邻居”(即“一层邻居节点”)踹入栈中“待用”,然后围绕顶部节点猛攻,每个节点被...
分类:
编程语言 时间:
2015-02-20 15:15:42
阅读次数:
247
IDA*算法 OrzHZWER A*+迭代加深搜索=IDA* 这题的估价相当于一个可行性剪枝,即如果当前走的步数s+未归位的点数>搜索深度k,则剪枝 1 /************************************************************** 2 ...
分类:
其他好文 时间:
2015-02-17 12:50:10
阅读次数:
237
题目链接:http://codeforces.com/problemset/problem/510/B题目意思:给出 n 行 m 列只有大写字母组成的字符串。问具有相同字母的能否组成一个环。 很容易知道要用到深搜。暴力搜索~~~ 1 #include 2 #include 3 #inclu...
分类:
其他好文 时间:
2015-02-16 11:31:25
阅读次数:
182
100 可以表示为带分数的形式:100 = 3 + 69258 / 714。
还可以表示为:100 = 82 + 3546 / 197。
注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。
类似这样的带分数,100 有 11 种表示法。
输入格式
从标准输入读入一个正整数N (N<1000*1000)
输出格式
程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。
注意:不要求输出每个表示,只统计有多少表示法!...
分类:
其他好文 时间:
2015-02-15 21:56:22
阅读次数:
248
如下图所示,3 x 3 的格子中填写了一些整数。
+--*--+--+
|10* 1|52|
+--****--+
|20|30* 1|
*******--+
| 1| 2| 3|
+--+--+--+
我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。
本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。
如果存在多种解答,请输出包含左上角格子的那个区域包含的格子的最小数目。
如果无法分割,则输出 0。
输入格式
程...
分类:
其他好文 时间:
2015-02-15 20:38:03
阅读次数:
194
Problem Description
The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, and the doggie could feel the ground sinking. He realized that the bone was a trap, and he tried desperately...
分类:
其他好文 时间:
2015-02-12 16:21:54
阅读次数:
129
Op tech briefing, 2002/11/02 06:42 CST ===
"The item is locked in a Klein safe behind a painting in the second-floor library. Klein safes are extremely rare; most of them, along with Klein and his factory, were destroyed in World War II. Fortunately old B...
分类:
其他好文 时间:
2015-02-12 16:12:49
阅读次数:
174
给定n*m的方格,每个小格子里有A~Z的字母,代表一种颜色,问这个n*m的方格里是否包含一个颜色相同的环.枚举方格中的每一个格子以其作为起点进行深度优先遍历,看是否能回到起点,能的话就能找到这么一个环,否则就不行.判断是否回到起点的一个小技巧是:先记录下起点位置,深搜的过程将路径给'堵'住,如果到达...
分类:
其他好文 时间:
2015-02-11 20:36:16
阅读次数:
215
这道题磨了我一个下午,虽然在大神帮助下完成,要注意的东西太多,之前还用了宽搜,那是每看懂题目意思,宽搜是找到一条最短路,而这道题不一定是最短路,要在规定的时间到达,换句话说就是有规定的步数,走了的不能再走。写题中遇到以下几个问题:1.对于深搜还是没有完全理解,由于是递归,所以每次的函数体应该都是一样...
分类:
其他好文 时间:
2015-02-08 00:17:20
阅读次数:
210
之前被教过一个next_permutation库函数,是用来实现数的全排列的,具体实现见代码#include#include#includeusing namespace std;int main(){ int a[1000]; int n; while(scanf("%d",&n...
分类:
其他好文 时间:
2015-02-07 00:29:22
阅读次数:
536