搜索
文章平均质量分 81
Colin_27
这个作者很懒,什么都没留下…
展开
-
hdu4090 GemAnd Prince
按规则DFS,细节比较多BFS会超内存 传送门//#pragma warning (disable: 4786)//#pragma comment (linker, "/STACK:16777216")//HEAD#include #include #include #include #include #include #include #incl原创 2013-10-22 12:48:49 · 739 阅读 · 0 评论 -
Untrusted Patrol 14牡丹江网络赛C
题意:给定一个n个点,m条边的图,其中k个点上有探测器再给定一个探测器第一次被遍历的序列,问是否存在一种遍历顺序使得满足给定序列且遍历完所有点思路:从第一个被遍历的探测器开始dfs,每次访问到探测器遍停止,访问到非探测器节点便搜下去。结束后判断给定序列下个探测器是否被访问过,若没有,说明无法不通过 其他 探测器到达此探测器,无解。若被访问过,继续dfs此结点。这样d原创 2014-09-11 12:06:44 · 1034 阅读 · 0 评论 -
poj3322 Bloxorz I
经典的方块游戏1 * 2 * 1的砖块 最少步数到达一个指定的洞中很明显的bfs,状态表示时用一个p值0,1, 2分别表示砖块立起来,横躺着和竖躺着,判重时用一个三维数组即可 vis [p状态] [行位置] [列位置]那么每次直接从一个状态转移到另一种状态,坐标位置同时改变即可#include #include #include #include #incl原创 2014-08-14 22:47:51 · 1192 阅读 · 0 评论 -
hdu1427 速算24点
枚举两个数字进行运算,将运算结果加入数组末尾后继续枚举当数组中有7个数字之后表示运算完成//#pragma comment(linker, "/STACK:102400000,102400000")//HEAD#include #include #include #include #include #include #include #include #inc原创 2014-07-08 10:59:09 · 1197 阅读 · 0 评论 -
SGU536 Berland Chess
棋盘上白子只有一个国王 黑子给出各子遵从国际象棋的走法黑子不动,白子不能走进黑子的攻击范围以内问白字能不能吃掉所有的黑子直接搜索就好了,各子状态用二进制表示不过每个子被吃之后攻击范围会改变所以重点是预处理每种剩余棋子状态的攻击范围比较麻烦,注意白子吃掉一颗子之后所在的位置也可能是危险位置原创 2013-10-31 21:48:15 · 1033 阅读 · 0 评论 -
hdu4587 TWO NODES
问一个无向图中去掉任意两点后剩下的连通分量的个数最大值枚举第一个删去的点,在剩下的子图中求割点注意,剩下的子图可能不连通,那么就要对每个连通块求割点计算删去一个点后剩余连通分量个数 left 的方法为:tarjan算法中的时间戳数组dfn[]若为0说明是新的连通分量求删去割点后剩余连通分量个数:tarjan算法中将判断是否为割点的bool 数组改为int类型,并将iscut[i] = 1 改为 iscut[i]++ 即可那么对于非根节点,删去后剩余个数为iscut[i] + 1(子树个数加上父节原创 2013-10-30 16:46:13 · 1038 阅读 · 0 评论 -
hdu4215 Moles
不错的题目笛卡尔树+DFS+KMP匹配这道题建树复杂度过高,所以需要笛卡尔树(队员敲的这部分,不懂)然后dfs得到模式串再直接匹配就好了原创 2013-10-22 20:37:17 · 652 阅读 · 0 评论 -
hdu4431 Mahjong
这道题直接考虑胡什么不太好实现,所以直接枚举34张牌,看是否能够凑成胡牌这里需要注意一点,任意一种牌,数量不能超过四张当时写完之后一直超时,尝试优化都失败了其实,枚举完奖牌之后,dfs过程中若一张牌有,但是不能形成刻子或者顺子,那么这张牌肯定没有用 那么直接返回就好了,这是一个重要的优化加了这个优化之后就可以过了 不过后来还是直接模拟做了,时间更快,也更好写先直接枚举顺子,不过要注意,一张牌若是三张(枚举将牌之后),就不能拆成顺子 然后统计是否牌都用过即可具体见代码吧,顺便贴上几组数原创 2013-10-23 19:53:34 · 770 阅读 · 0 评论 -
hdu3699 A hard Aoshu Problem
正解是DFS每种字母代表的数字其实暴力枚举就可以了#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include u原创 2013-10-22 13:05:44 · 818 阅读 · 0 评论 -
2014牡丹江 区域赛 Building Fire Stations
给一棵最多2*10^5个结点的树,选择两个结点放置设备,要求所有结点其到最近设备的最远距离最小,求出这个最小距离。最大值最小,首先想到二分。二分一个最大距离M,先以1号结点bfs出每个结点的深度。任选一个最大深度的结点,则离他距离M的父结点u上必须要放置一个设备。然后再以u进行bfs,同样的选择出第二个结点。再把选择的两个设备结点加入队列bfs,看是否能够遍历所有点,若能就满足。z原创 2014-10-13 14:01:09 · 1096 阅读 · 0 评论