搜索
文章平均质量分 78
「已注销」
混子一个
展开
-
CF 349div2 C
上来题意杀。。好好学英语。。要求连续两个后缀不能相等。考虑记忆化搜索。。其实也算不上记忆化?就是设立一个vis[maxn][3][3]来进行剪枝,后两位分别表示要取多少和以前取了多少。。这样就不会有重复的了。。也避免了test42那样的。。abcdezzzzzzzz。。。#include #include using namespace std;string ss;cons原创 2016-05-03 21:41:19 · 246 阅读 · 0 评论 -
hdu 6171 ida*
题意:一个数塔,类似八数码的样子。。思路:正解双向搜索。。时间复杂度非常科学。。不过数据弱ida*搞了过去。。。。(大力出奇迹?)代码;#includeusing namespace std;#define X first#define Y second#define PB push_back#define MP make_pair#define MEM(x,y) mems原创 2017-08-26 20:50:43 · 368 阅读 · 0 评论 -
hdu 5925 搜索
题意:一个图,n个障碍,求联通块思路: 图很大,障碍物很少。把联通的障碍物块抠出来,然后暴力。代码:#includeusing namespace std;#define MEM(a,b) memset(a,b,sizeof(a))#define bug puts("bug");#define PB push_back#define MP make_pair原创 2017-08-14 20:03:46 · 207 阅读 · 0 评论 -
hdu 5506 bitset 优化
题意:n个数组,划分成l个集合,每个集合至少有一个数组,并且一个集合中的数组至少要有一个相同的数,问你是否存在这样的划分方案思路:L比较小,直接暴力每个数组是在哪个集合里,大约30^5 同时用bitset维护某种集合是否合法,总时间复杂度30^5*300/64 看上去非常的大,其实加上合法性剪纸跑的还是飞快的。。。甚至0ms 。。。黑人问号???PS.随便搜搜有没有bits原创 2017-08-09 19:56:54 · 221 阅读 · 0 评论 -
hdu 1043 八数码问题-A*搜索
http://acm.hdu.edu.cn/showproblem.php?pid=1043题意。。不再赘述,和小时候玩的玩具很像。思路:今天人生终于完整了。。。 来一个普通的A*搜索的思路。。。(感觉会不会倒着打表更快?)所谓A*搜索个人理解就是对于BFS的一个优先级队列优化。。。至于用什么作为关键字就是一个估价函数,你要使得尽量去搜索有价值的答案。。原创 2016-10-22 16:29:26 · 231 阅读 · 0 评论 -
hdu 1043 八数码--打表
http://acm.hdu.edu.cn/showproblem.php?pid=1043题意:略;思路:其实怎么看也是打表的思路比较容易想一些,不过A*搜索真是神奇。。。而且打表快不少,可能和多组数据有关,其实A*也可以记忆化一下应付一下多组数据,大概也会快不少吧。。。思路很简单,从最终状态反向暴力BFS就可以了。。因为所有状态也已9!不是很多,主要用hash来原创 2016-10-22 16:49:38 · 225 阅读 · 0 评论 -
Codeforces Round #355D (Div. 2) 暴力+BFS
题目链接:http://www.codeforces.com/contest/677/problem/D题意:你一开始在(1,1),有n*m个地方,去X以前必须要去X-1思路:这题很迷。。我确实是不会做。。看来BFS分类的思路实现了一下过了,这题直接暴力是n^4肯定是不行的,当然显然直接BFS也不行,就算有剪枝最坏情况仍然很糟糕(当出发点很多的时候剪枝效果显然会变好),所以考虑以n原创 2016-06-22 20:33:21 · 327 阅读 · 0 评论 -
Codeforces #354D (Div. 2) 暴力BFS
题目链接:题目#include using namespace std;int n,m;char mp[1005][1005];int x1,x2,y1,y2;struct node{ int x,y,step,tim; node(int X,int Y,int Z,int T):x(X),y(Y),step(Z),tim(T){};};vector >原创 2016-06-21 18:07:32 · 259 阅读 · 0 评论 -
hdu 1710恢复二叉树
恢复二叉树是面试的经典题目,首先我们知道的结论是已知前序和中序或者后序和中序,那么我们就可以唯一的确定一个二叉树。思路是在 中序的某一段中 前序(后序)中靠前(后)的 节点是这一段中序的父亲节点,并且由这个节点将这一段划分为二。。当不能划分的时候就是到了叶子节点。所以我们可以考虑传递父亲节点和他的部分儿子,再在这一些节点里面找到一个父亲。。这样就可以递归解决问题。原创 2016-05-16 21:33:36 · 233 阅读 · 0 评论 -
poj-3134 ida*||记录路径bfs
http://poj.org/problem?id=3134题意是一个x的n次方,最快的运算个方式。。。不会做看题解是个IDDFS。。。太高深暂时先不研究,以后填坑。。这里考虑一个BFS的做法,一开始以为直接记录父节点类似并查集那样的寻找相关然后记录最小值就可以了。。后来发现相等的时候父节点不一定取哪个最好,这里学习了一个方法,在节点里面记录来的路径,由于自己不会算空间复杂度,还以原创 2016-04-30 20:07:26 · 812 阅读 · 0 评论