
暴力搜索 回溯 DFS BFS
文章平均质量分 73
weiwanshu
这个作者很懒,什么都没留下…
展开
-
POJ 1166 clocks【DFS】
我查了查,比较好的办法是高斯消元,或者BFS,用不过用9重for循环暴力枚举法可以做出来,真的非常不喜欢太多的for循环,所以寻找能用DFS做出来的解法。一开始我就用DFS枚举一个一个试,但是可能是数据量太大了,结果总是出不来,原来所有的题都不是死板的相同,都需要动动脑子的。我非常不甘心,还是把失败的代码打出来先。int main(void){ // 省略输入输出及其他非核心步骤原创 2015-05-11 17:27:10 · 388 阅读 · 0 评论 -
POJ 3278 Catch That Cow【C语言版】
我的第一道BFS题,还是按照习惯在网上搜索题解,令人郁闷的是大部分都是C++版的,用了queue库。而且可能因为这道题太水,好不容易找到的C语言版的解题报告中的注释又对新手不太友好,不是特别详细,有的讲的很齐全但是代码太难看了我拒绝看 = =。。。知道我遇到了这个人的博客,当然注释也不是很齐全,但是胜在代码啰嗦(划掉),马上就看懂了。所以我决定在他的解题报告代码的帮助下来开始我人生中第一道BFS题原创 2015-05-16 19:14:40 · 1979 阅读 · 0 评论 -
POJ 3126 Prime Path
我查了一下,很多人都把它当成第二道BFS题啊,非常高兴能遇到一个适合我现阶段水平的题题意是输入两个四位数字,改动第一个数的某一位算作一步,求将第一个数字转化为第二个数字最少需要多少步思路还是很清楚的,一位一位的改,每改一位将改动过的数字存到队列中。#include#include#includestruct A{ int number; int step;}queue[10原创 2015-05-17 21:40:47 · 377 阅读 · 0 评论 -
POJ 2386 Lake Counting DPS解法
因为总是害怕超时,束手束脚顾虑太多,其实很简单,直接无脑搜索就做出来了思路是设置一个数组记录访问情况,然后先找W,找完了DFS标记周围的W,如果没有可以标记的就结束搜索。#include#includeint n, m, num = 0;char pond[105][105];int vis[105][105];void dfs( int row, int col);int m原创 2015-05-14 20:15:49 · 493 阅读 · 0 评论 -
POJ 1950 desserts
纯暴力搜索,DFS。而且把搜索结果放到字符串中,之后独立判断,766MS过,太暴力了这道题单纯搜索一点都不难,连剪枝都不需要,但是就是 ‘.’符号需要进行一些运算,麻烦了一些#includeint n, total = 0, time, node = 0;long long sum;int num = 0;char a[15];void dfs( int cur);void j原创 2015-05-14 19:25:13 · 337 阅读 · 0 评论 -
POJ 1543 Perfect Cubes
做水题爽啊,连题解都不用搜这里比较坑的是pow()!一用就超时!老老实实乘就16MS#includeint main(void){ int N, i, j, k, n; long a[105] = {0}; scanf("%d", &N); for( n = 6; n <= N; n++){ a[n] = n * n * n;原创 2015-05-13 16:04:19 · 348 阅读 · 0 评论 -
POJ 1664 放苹果【DFS/递归】
因为一瞬间脑子不太清楚,有个地方敲错了,导致了这道水题花了我一些时间,其实很简单....首先想到的是DFS,因为一直在做这个嘛...DFS代码比较长,好不容易遇到一道容易题,我还剪了剪枝。。。这么水的题,有点多此一举啊#includeint m, n;int total, num;void dfs( int remain, int pre, int plate);int main(原创 2015-05-13 18:35:53 · 448 阅读 · 0 评论 -
POJ 1321 棋盘问题
非常简单的一道DFS题,用常规回溯就可以直接做出来,我十分钟就写好了代码可是昨天总是无法AC,今天搜了半天题解看到这句话我才意识到代码中存在的问题:这道题目类似N皇后问题,与之不同的是每一行不一定有棋盘,所以dfs里要注意不一定是当前行。之前总是改来改去混乱找不到头绪,一瞬间醍醐灌顶。之后64MS 过的。#include#includechar pan_one[10][10];原创 2015-05-12 15:36:24 · 354 阅读 · 0 评论 -
POJ 1731 Orders【生成有重集的全排列1.0】
因为刚做完POJ 1256 所以直接用1256的代码改的。。也是爽#include#include#includeint n, len; char str[205], arr[205];int fre[55][2] = {0}; int cmp( const void* a, const void* b){ return *(char*)a - *(char*原创 2015-05-12 17:35:08 · 461 阅读 · 0 评论 -
POJ 1256 Anagram【生成有重集的全排列2.0】
因为全排列问题曾经仔细看过,有重集的全排列刘汝佳上也明确讲过,所以这次终于享受了一次 秒过水题的快感,以往都是被水题虐死T0T这里比较小坑的是放在最后的一句话,注意了这个就没什么大问题了HintAn upper case letter goes before the corresponding lower case letter.So the right order of le原创 2015-05-12 17:00:19 · 482 阅读 · 0 评论 -
第7章 暴力求解法的读书笔记
简单枚举7.1.1 除法 ——并没有搞出来,不知道出了什么问题7.1.2 乘积 ——对于数据量小于18的这种小数据只求乘积最大的连续子序列的积是很好搞的,直接枚举序列的头指针和尾指针就可以了 但是如果是求和还求最小头尾指针,就是可以用更好的办法,只循环一遍:原创 2015-04-28 21:13:24 · 400 阅读 · 0 评论