搜索
时雨晴天
PhD毕业,正在寻找下一个人生目标,愿求文武双全之道。
展开
-
Poj 3301 Texas Trip (三分搜索)
题目链接:http://poj.org/problem?id=3301题意:求最小的正方形面积保证正方形可以覆盖所有给出的点。思路参考自:http://hi.baidu.com/answerme11/item/597255a690ac76dc5af19152网上偶然看到的算法,第一道三分搜索的题,鉴于坑爹的百度,我把思路复制粘贴一下……我无法证明问题函数原创 2013-03-06 18:40:31 · 1073 阅读 · 0 评论 -
Hdu 1198 Farm Irrigation (DFS 异或的应用)
参考了:http://blog.csdn.net/firwaless/article/details/18672239题意:有一块n*m的农田,被分隔成许多小的正方形,每个正方形中都装有水管,一共有11种水管,分别用字母A~K标明。正方形的中心可以有水源,水可以沿着水管流到其他的正方形上,问至少需要多少个水源,保证农田全部被灌溉。本题也可以用并查集。参考的原文判断相反方向的异或用的很精髓,原创 2014-01-23 19:39:26 · 863 阅读 · 0 评论 -
POJ1426-Find The Multiple (BFS 余数)
题意:给出一个整数n,(1 第一份代码,记录路径的BFS第二份代码,忘记是从哪里看的了……第三份代码,感觉这个思路很好:POJ1426-Find The Multiple - ζёСяêτ - 小優YoU#include #include const int N=1000005;int n;int que[N],pre[N],q[N],ans[205];//que[原创 2014-01-18 09:54:32 · 824 阅读 · 0 评论 -
基础BFS 邻接矩阵Flood fill 算法题目总结
很基础的一类BFS题,个人觉得BFS在求最短、最近、最快等题目时比DFS还是有较大优势的Poj 1979 Red and Black#include #include #include using namespace std;const int N=25;struct Point{ int x,y;};int graph[N][N];bool visit[N][N]原创 2014-01-18 11:36:52 · 1650 阅读 · 0 评论 -
Hdu 1026 Ignatius and the Princess I (BFS 优先队列+路径输出)
给一个 N*M 的四方向连通的图, 要从左上角走到右下角,. : 代表可以走,X : 表示是墙,不可以走,n : 代表这里有一个怪兽,打败怪兽用时 n,每走一步耗时 1 .如果能到达,则输出最小时间和每一步的走法。保证起点没有怪兽,终点不是墙,可能有怪兽。#include#include#includeusing namespace std;const int N=105;i原创 2014-01-20 09:39:44 · 944 阅读 · 0 评论 -
Hdu 1010 Tempter of the Bone (DFS 经典奇偶剪枝)
题意:一个n*m的迷宫,需要在迷宫中生存的时间为t。S为起点,D为终点。每个格子只能踩一次,且只能维持一秒,然后该块地板就会塌陷,所以你必须每秒走一步。问是否可以到D点时,所用时间恰好为T。典型的迷宫搜索题,很经典的DFS奇偶剪枝。突然发现abs()竟然不在头文件math.h下, 而是在stdlib.h下。以下分析参考了湖南工业大学的PPT《07_ACM_DFS+BFS》。剪枝一:可走原创 2014-01-19 11:30:27 · 841 阅读 · 0 评论 -
Poj 1980 Unit Fraction Partition (分数分解 搜索)
题意:把一个给定分数划分为n个以内的单位分数之和,并要求这些单位分数的分母之积不大于a.求划分方案总数.这是道1000ms的题,自己写了个调了半天907ms艰难水过……水平还是太弱。。。。#include int ans;int p,q,a,n;void DFS (int cnt,int count,int tp,int tq,int mul){//已搜索到分母,个数,分数当前原创 2014-02-06 16:43:49 · 1304 阅读 · 0 评论 -
Poj 1826 The Best Farm (floodfill + Hash)
题意:给出N个单位方块的坐标以及权值,求出其中所有四连通块中最大的权值和思路:很基础的floodfill模型,就是这次坐标范围比较大,不能直接存。使用了hash来处理。网上还有排序等其他方法。BFS速度较慢,1500ms左右,DFS 500ms左右关于Hash时模值为什么选择素数这里有一篇分析,涨姿势了:为什么一般hashtable的桶数会取一个素数_罗自荣_新浪博客#in原创 2014-03-14 11:20:09 · 1249 阅读 · 0 评论 -
倒水问题学习小记 Poj 1606 + 3414 + Hdu 1495 + UVA 10603
倒水问题是一个很经典题目,参考ziliao原创 2014-05-29 20:50:48 · 1449 阅读 · 0 评论 -
Hdu 5025 Saving Tang Monk (BFS 2014 Guangzhou Online )
今天得知还有人关注着自己的博客,真是受宠若惊。网赛的时候没想原创 2014-09-20 20:57:23 · 1481 阅读 · 0 评论 -
Poj 1190 生日蛋糕 (DFS 剪枝)
隐约记得前几年网络赛有过类似的题,当时毫无想法……参考了:http://blog.csdn.net/lencle/article/details/7016191可能还能进一步优化,可以参考:http://www.cnblogs.com/bisai/archive/2013/06/09/3130171.html//16ms#include #include #include us原创 2014-01-21 10:26:39 · 864 阅读 · 0 评论 -
Poj 3087 + Hdu 1312 + Hdu 1241 + Poj 3278 (基础BFS DFS)
DFS的剪枝真的很重要,还需要多加练习!Poj 3087 Shuffle'm Up其实是一道模拟题,被别人分类到了搜索里……题意:给你两堆纸牌,让你通过数次洗牌动作使得洗牌之后的序列为给定序列。输出最小的洗牌次数。洗牌方法:把第二堆的第一张放在最下面,让后放第一堆最下面的那张,;轮流放。洗完之后,把下面的n张作为第一堆,上面的n张作为第二堆。#include原创 2014-01-21 11:12:44 · 1046 阅读 · 0 评论 -
三分搜索法
转自:http://www.cnblogs.com/newpanderking/archive/2011/08/25/2153777.html二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手”~~如图,类似二分的定义Left和Right,mid = (Left + Right) / 2,m转载 2013-03-06 18:51:41 · 868 阅读 · 0 评论 -
Poj 1708 Game (BFS)
这道题的描述真心纠结……题意:给出N个点(不超过100个),每个点有一个颜色(颜色标号不超过100),有一些点的颜色可以相同。给出M条有向边,这些边也有一个颜色。给出两个棋子的初始点L,K,终点Q,问两个棋子中的任意一个是否可以移动到Q,如果可以,输出移动的最小步数。移动时遵循以下规则:1.一个棋子可以移动到下一个点需要满足:经过的边的颜色与另一个棋子所在点的颜色相同;2.只能沿着有向原创 2013-04-04 22:59:36 · 1309 阅读 · 0 评论 -
Hdu 1242 & Zoj 1649 Rescue (优先队列+BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1242题意:朋友(r)杀敌人(x)救天使(a),时间最短型走迷宫,走格子耗时1s,杀敌人额外耗时1s。思路:与步数最少的走迷宫不同,时间最少要使用优先队列,时间小的优先出队(据说HDU普通队列也能过……)有可能会有多个朋友,所以从a开始搜r比较简单。网上看到另一种方法,就是把杀护卫和走到原创 2013-05-21 19:55:00 · 974 阅读 · 0 评论 -
状态压缩dp学习小记part2
继续学习状态压缩的相关知识。本来准备继续按照上篇博文里提到的那篇论文继续学习,但被矩形完全覆盖虐了回来,决定先做些其他的题增进理解之后再回来做。Zoj 3471 Most Powerful题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3471题意:不超过10种原子,两两之间相互碰撞可以产生原创 2013-06-05 22:03:41 · 1127 阅读 · 0 评论 -
Poj 2531 Network Saboteur (DFS/二进制枚举集合)
题意:把一个完全图分成两部分,使得连接这两部分边的权和最大。思路:图论的无向完全图的最大割问题用了两种方法。#include #include int n;int data[25][25];int belong[25];int ans;void DFS (int a,int sum){ if (a==n) { if (sum>ans) ans=sum;原创 2013-09-06 17:20:01 · 987 阅读 · 0 评论 -
Poj 3411 Paid Roads (DFS 特殊标记方法)
挺有意思的一道搜索题题意:有n座城市和m(1注意:路径是有向的。以上描述参考了http://blog.csdn.net/lyy289065406/article/details/6689310思路:数据规模很小,DFS即可,标记方法比较特殊#include #include const int INF=0x3fffffff;int n,m;原创 2013-09-06 18:52:15 · 1106 阅读 · 0 评论 -
Poj 1724 ROADS (搜索 最短路 BFS优先队列)
题意:有n 城市,r条路,有k这么多的钱。每条路都有长度和花费两个参数,求从1到n最短且总花费不超过k的长度。思路:优先队列。每次将长度最小的出队,然后判断花费,位超限就将后继点入队。#include #include #include using namespace std;int n,k,r,e;int head[105];struct Edges{ int原创 2013-09-06 18:59:35 · 1013 阅读 · 0 评论 -
Poj 1077 Eight 八数码问题 (搜索)
文章还没有写完,明天搞清楚IDA*算法再继续写。搜索会用的方法太少了,于是最近被搜索虐爆了。。。认识启发式搜索A*和迭代加深的A*算法:IDA*算法可以看这个:[搜索]A*和IDA*_c++吧_百度贴吧这个题学到了一个处理排列的小技巧:康托展开_百度百科双向BFS解法:http://blog.csdn.net/dizem/article/details/44原创 2013-08-29 22:08:42 · 1667 阅读 · 0 评论 -
BFPRT算法求第k大数
偶然间看到的东西,简单的看了看,不明觉厉……查了些资料,留待以后学习。BFPRT算法_小彰_百度空间十四、第三章再续:快速选择SELECT算法的深入分析与实现 - 结构之法 算法之道 - 博客频道 - CSDN.NET找最小的K个数 - Stay hungry, Stay foolish - 博客频道 - CSDN.NET线性查找算法,BFPRT 算法_const vo原创 2013-10-19 10:31:15 · 1281 阅读 · 0 评论 -
Poj 1184 聪明的打字员 (搜索)
目前依旧不明觉厉……贴代码留待以后理解,以下是参考链接思路:http://wenku.baidu.com/view/0c2742fb770bf78a65295406.html代码:http://hi.baidu.com/kmzchchycfdeovr/item/6d7358b32be4edf762388eb6#include #include #include using n原创 2013-09-06 17:08:16 · 1181 阅读 · 1 评论