随笔分类 -  搜索

摘要:还是比较简单的,广搜就行,不过我一开始以为用深搜也可以,还打了一部分代码,后来才想到是会超时的,因为题目中没有给出T的范围。/* * hdu2102/win.cpp * Created on: 2012-11-28 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include 阅读全文
posted @ 2012-11-28 19:05 moonbay 阅读(153) 评论(0) 推荐(0)
摘要:简单的三维空间求最短路,用广搜就可以了。/* * hdu1240/win.cpp * Created on: 2012-11-18 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <set>#include 阅读全文
posted @ 2012-11-18 12:09 moonbay 阅读(168) 评论(0) 推荐(0)
摘要:这题看完本来以为是找规律的,可找了半天也没找出啥规律,翻了一下解题报告,说是搜索加剪枝,学了一下,就过了。/* * hdu4016/win.cpp * Created on: 2012-11-9 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue& 阅读全文
posted @ 2012-11-09 14:45 moonbay 阅读(135) 评论(0) 推荐(0)
摘要:这都是今天做的第三道二分答案的题了。。。这题精度控制要求也比较高,我是把eps设成1e-8才过的1e-6都过不了。。。/* * hdu2199/win.cpp * Created on: 2012-11-2 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include < 阅读全文
posted @ 2012-11-02 18:26 moonbay 阅读(164) 评论(0) 推荐(0)
摘要:算水题吧,不过这题精度卡得还是挺厉害的,刚开始的时候我是把面积都放大,放大100000000倍,都用long long进行处理,还是过不了,只能用double控制精度了。/* * hdu1969/win.cpp * Created on: 2012-11-2 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include < 阅读全文
posted @ 2012-11-02 14:45 moonbay 阅读(173) 评论(0) 推荐(0)
摘要:挺简单,直接上代码。/* * hdu2062/win.cpp * Created on: 2012-10-27 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <set>#include <map> 阅读全文
posted @ 2012-10-28 12:40 moonbay 阅读(136) 评论(0) 推荐(0)
摘要:这题第一个突破点是:由于第i个城市建加油站需2^(i-1),这比前i-1个城市都建加油站耗费的还多,所以可以倒过来枚举,如果前n-1城市都建加油站而第n个城市不建能满足要求的话,那么最终结果肯定是不需要在n建加油站的,否则就需要建;接下来继续考虑在这种情况下前n-2个城市全建、n-1不建是否能满足要求,进而确定n-1城市的状态。依此类推,就能用O(N)的时间确定每一个城市是否建站的状态。对于一个确定的状态,用广搜进行判断即可,不过细节还是挺多的,例如有些城市(不建加油站)可以从加油站过去,但是无法再次回到加油站。比赛的时候代码不是我打的,也没有打印带回来,现在懒得再打一次贴上来了,有时间再说吧 阅读全文
posted @ 2012-10-26 23:28 moonbay 阅读(728) 评论(0) 推荐(0)
摘要:枚举r,二分K就可以了,不过还是需要注意细节,比较数据类型之类的,不然容易错。/* * hdu4430/win.cpp * Created on: 2012-10-26 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include & 阅读全文
posted @ 2012-10-26 23:01 moonbay 阅读(182) 评论(0) 推荐(0)
摘要:暴搜就可以过了,简单。/* * hdu2181/win.cpp * Created on: 2012-10-25 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <set>#include <map&g 阅读全文
posted @ 2012-10-26 10:55 moonbay 阅读(168) 评论(0) 推荐(0)
摘要:数据量很少,暴搜就可以过了/* * hdu1181/win.cpp * Created on: 2012-7-30 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <set>#include <map& 阅读全文
posted @ 2012-07-30 16:14 moonbay 阅读(154) 评论(0) 推荐(0)
摘要:简单题,暴搜就可以过了。/* * hdu4152/win.cpp * Created on: 2012-7-28 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <set>#include <map&g 阅读全文
posted @ 2012-07-28 12:48 moonbay 阅读(287) 评论(0) 推荐(0)
摘要:此题巨恶心,花了我好几天才过掉……首先是题目巨难懂,我是读了一个多小时才差不多明白的。读懂题意后马上想到用二分查找,代码打出来了,却死活过不了。几天以后,终于在北大讨论版看到有人说,只要输入的时候+0.005再转成整数就不会丢失精度了,泪流满面啊……/* * hdu1551/win.cpp * Created on: 2011-11-15 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime& 阅读全文
posted @ 2011-11-18 15:16 moonbay 阅读(313) 评论(0) 推荐(0)
摘要:bjfuoj的测试数据最水,用很简单的方法一下就过了,又调了好长时间,才过掉其它OJ上的这道题目~/* * hdu1518/win.cpp * Created on: 2011-11-8 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue># 阅读全文
posted @ 2011-11-08 20:25 moonbay 阅读(311) 评论(0) 推荐(0)
摘要:就是连连看游戏。开始用优先队列广搜,WA,跟海峰讨论了一下,发现只要一次走一行,就可以只用普通队列即可,又是一道泪流满面的题目啊~~~~~/* * hdu1175/win.cpp * Created on: 2011-10-2 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>#include <iostream>#include <queue>usi 阅读全文
posted @ 2011-10-03 12:49 moonbay 阅读(184) 评论(0) 推荐(0)
摘要:这题题目不难,代码也不长,花了一个小时,主要是之前没用过结构体的构造函数,比较函数与优先队列/* * hdu1242/linux.cpp * Created on: 2011-9-4 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>#include <queue>using namespace std;typedef struct Node { int x, y 阅读全文
posted @ 2011-09-04 22:39 moonbay 阅读(165) 评论(0) 推荐(0)
摘要:题目简单,直接贴代码/* * hdu1241/linux.cpp * Created on: 2011-9-4 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int MAXN = 105;char map[MAXN][MAXN];int types[MAXN][MAXN], curtype;const int move[ 阅读全文
posted @ 2011-09-04 21:28 moonbay 阅读(133) 评论(0) 推荐(0)
摘要:直接二分查找答案即可,我的判断函数没有像大牛们那样优化,但是过是没问题的~/* * hdu4004/linux.cpp * Created on: 2011-9-4 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int MAXN = 500010;int stone[MAXN], L, N, M;int step(int 阅读全文
posted @ 2011-09-04 19:49 moonbay 阅读(441) 评论(0) 推荐(0)
摘要:直接枚举Ai, Bj, Ck的复杂度为L×M×N,过不了。先把所有Ai, Bj的和存起来并排序,然后枚举Ck,二分查找Ai, Bj的和,复杂度为L×M×log(L×M)。/* * hdu2141/linux.cpp * Created on: 2011-9-1 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using na 阅读全文
posted @ 2011-09-01 13:15 moonbay 阅读(139) 评论(0) 推荐(0)
摘要:题目分类里说这题是hash,我用深搜加剪枝水过~~不过这道题还真算得上一道好题,思路很多,可以用HASH,题目数据再加强一点就更好了深搜代码如下:/* * hdu1496/linux.c * Created on: 2011-8-5 * Author : ben */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>void work();int main() {#ifndef ONLINE_JUDGE freopen("data.in&qu 阅读全文
posted @ 2011-08-05 15:44 moonbay 阅读(190) 评论(0) 推荐(0)
摘要:这题一看,用动态规划、母函数应该都可以,我用深搜水过~/* * hdu2069/linux.c * Created on: 2011-7-28 * Author : ben */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>int kind;int money[5] = {50,25,10,5,1};int num[5];void dfs(int step, int remainmoney) { int i, temp = 0; if(step = 阅读全文
posted @ 2011-07-28 17:59 moonbay 阅读(199) 评论(0) 推荐(0)