
搜索
YouthDance
JUST DO IT
展开
-
DP问题用dfs实现
链接地址:NYOJ325 zb生日 刚开始学的DP所以遇到DP问题总想把他状态转移,虽然这样可以得出结果,但时间花费太多。所以渐渐的就开始学习将小数据DP问题用dfs解决。因为次题并不是太难,所以就不给出太多的注释。#include#define max(a,b)(a>b?a:b)const int MAXN=21;int V,ans,n,sum[MAXN],w[MAX原创 2013-04-17 10:48:03 · 1397 阅读 · 0 评论 -
NYOJ 走迷宫
走迷宫 题目链接:Click Here~题目分析: 一开始还以为是记忆化搜索,或者dp啥的。之后才知道因为数据小,只要dfs+二分。#include #include #include #include using namespace std;const int N = 100+5;bool flag,vst[N][N];int n,gr原创 2014-02-28 12:43:38 · 886 阅读 · 0 评论 -
Reward HDU
Reward Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2647 Accepted Submission(s): 768Problem Description Dandel原创 2013-07-26 14:45:34 · 1538 阅读 · 0 评论 -
Legal or Not HDU
Legal or NotTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3060 Accepted Submission(s): 1386Problem DescriptionACM-DIY is a la原创 2013-07-25 17:52:11 · 1469 阅读 · 0 评论 -
HDU1175 连连看
Problem Description“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但事实上这是错的。现在已经酿成大祸,就只能将原创 2013-06-13 17:39:38 · 897 阅读 · 0 评论 -
拓扑排序
今天,跟同学在NYOJ上做了一道搜索题,原先一直是以错误的思路来思考该问题。最后,问了别的同学后才知道原来是拓扑排序这个高级货。 按照白书上所介绍的拓扑排序是有一下定义: 假设有n个变量,还有m个二元组(u,v),分别表示变量u小于v。那么,所有变量从小到大排列起来应该是什么样子的呢?例如有4个变量a,b,c,d,若以知a 分析: 把每个变量看成一个点,“小于”关系看原创 2013-06-06 18:14:45 · 1246 阅读 · 0 评论 -
记忆化搜索
记忆化搜索:算法上依然是搜索的流程,但是搜索到的一些解用动态规划的那种思想和模式作一些保存。 一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态。更重要的是搜索还可以剪枝,可能剪去大量不必要的状态,因此在空间开销上往往比动态规划要低很多。记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来,以后再次遇到这个状态的时候,就不必重原创 2013-07-04 14:19:23 · 1154 阅读 · 0 评论 -
0ms poj sticks || NYOJ sticks
#include #include #include const int MAX = 65;int n,stick[MAX];bool vist[MAX];int cmp(const void *a,const void *b){ return (*(int *)b-*(int *)a);}bool dfs(int len,int num,int Index,int In原创 2013-04-23 15:32:58 · 716 阅读 · 0 评论 -
HDU1044 Collect More Jewels
一下是某位大牛的神奇代码,orz啊!!!!!!!!!#include #include #include #include using namespace std;int width,height,limit,jewelNumber,value[15];int step[15][15],maxValue,allValue;char graph[55][55];bool vis原创 2013-06-05 15:44:27 · 816 阅读 · 0 评论 -
Fire Net HDU && NYOJ blockhouses
Link Here..ANDLink Here题意:大体上就是叫你在一张图中,确定几个位置,是存放机枪的数目达到最多。分析:该题与经典的八皇后问题相似,只是该问题比八皇后问题多了有墙的限制,存放的位置多了一些选择。该题可以用搜索做但也可以用二分图做。因为该题的数据较少,所以搜索和二分图并无太大的区别。先说一下搜索:#include char map[5][5];int ans,原创 2013-06-04 11:05:57 · 822 阅读 · 0 评论 -
双向广度优先搜素
原文:Link Here 双向广度优先搜索算法是对广度优先算法的一种扩展。广度优先算法从起始节点以广度优先的顺序不断扩展,直到遇到目的节点;而双向广度优先算法从两个方向以广度优先的顺序同时扩展,一个是从起始节点开始扩展,另一个是从目的节点扩展,直到一个扩展队列中出现另外一个队列中已经扩展的节点,也就相当于两个扩展方向出现了交点,那么可以认为我们找到了一条路径。双向广度优先算法转载 2013-05-30 13:18:36 · 888 阅读 · 0 评论 -
诡异的楼梯
HDU1180:Link Hrer#include #include #include #include using namespace std;struct Point{ int x,y,step; friend bool operator < (const Point a,const Point b) { return a.step原创 2013-05-24 10:54:08 · 668 阅读 · 0 评论 -
HDU 2612 Find A Way
http://acm.hdu.edu.cn/showproblem.php?pid=2612#include #include #include #include #include using namespace std;const int MAX=202;int dis_Y[MAX][MAX],dis_M[MAX][MAX];int dir[5][3]={{-1,0},{原创 2013-05-10 16:08:49 · 626 阅读 · 0 评论 -
奇偶剪枝***&&***HDU1010 Tempter of the Bone
Link Here :*****奇偶原理详解Link Here:*****HDU 1010 奇偶剪枝描述奇偶剪枝是数据结构的搜索中,剪枝的一种特殊小技巧。现假设起点为(sx,sy),终点为(ex,ey),给定t步恰好走到终点,s转载 2013-05-24 13:03:12 · 781 阅读 · 0 评论 -
欧拉回路
HDU1878 欧拉回路 欧拉回路的题目需注意二个条件 一、判断其是否形成回路; 二、判断其是否正确的欧拉道路(其中的起始点和终点的入度是奇数的,其余点都是偶数)或者欧拉回路(所有点 的 入度都为偶数); 判断方法: 判断一个图中是否存在欧拉回路(每条边恰好只走一次,并能回到出发点的路径),在以下三种情况中有三种不同的算法: 一、无向图原创 2013-05-07 20:49:02 · 729 阅读 · 0 评论 -
DFS&&BFS Search Graph
//邻接矩阵表示图广度优先,深度优先 #include #include /*gragh.txt 8 9ABCDEFGH 0 1 1 0 2 1 1 3 1 1 4 1 3 7 1 4 7 1 2 5 1 2 6 1 5 6 1 */ #include #define MaxVertex 100//最大顶点数 using namespace std; in原创 2013-05-07 19:04:31 · 763 阅读 · 0 评论 -
A* \IDA* 分析总结
对于空格(0)的左移/右移操作,对应序列不变(逆序数也就不变) 对于空格(0)的上移/下移操作,相当于序列的某个数字前移/后移两位,该序列的逆序数奇偶性不变。 所以求初始状态与目标状态的逆序数可作出判断 例中前者为奇,后者为偶,因此无解利用奇偶性判断所给出的初始状态有无解. 判别方法是: 以数组为一维的举例子. 将八数码的一个结点表示成一个数组a原创 2014-10-02 18:25:12 · 1026 阅读 · 0 评论