good one
jiangjiashi
这个作者很懒,什么都没留下…
展开
-
重复字符串处理(详)
出处:http://www.cnblogs.com/XBWer/archive/2012/05/30/2524987.html【2012百度之星/资格赛】H:用户请求中的品牌 [后缀数组]时间限制:1000ms内存限制:65536kB描述馅饼同学是一个在百度工作,做用户请求(query)分析的同学,他在用户请求中经常会遇到一些很奇葩的词汇。在比方说“jo转载 2012-05-30 14:08:05 · 2668 阅读 · 0 评论 -
(trie) Shortest Prefixs(P2001)
这个自己写的,要注意新开一个指针得用new,#include#include#include#include#include#include#include#includeusing namespace std;#define N 26struct tree{ int num; tree* next[N]; tree() { num=1;原创 2012-07-13 11:04:31 · 398 阅读 · 0 评论 -
(静态trie) Phone List (P3630)
这道题可以用排序做的,不过这样就没有这道理的意义。我先是用一般的trie方法,可是会超时。因为用new 动态分配空间会占很多的时间,所以应该避免使用new,所以把结构体开成一个很大的数组,,把next[i]里的每一个值存的是下一个连接处的数组的位置。我在写这样的方法的时候有一点混乱,,幸好 还是出来了#include#include#includ原创 2012-07-13 16:51:08 · 326 阅读 · 0 评论 -
(kmp) Blue Jeans (3080)
这个题,感觉有一点复杂,中途有一点想放弃,,还是坚持下来了。还一次成功了。不错。,,今天写kmp比较顺利,也算是更理解一些了吧#include#include#include#include#include#include#include#includeusing namespace std;int n;char s[11][66];int next[原创 2012-07-06 22:32:24 · 523 阅读 · 0 评论 -
(kmp) Seek the name, seek the fame(P2752)
这个题,运用了KMP 的预处理,#include#include#include#include#include#include#include#includeusing namespace std;int n;char s[500000];int next[500000];void put(int k){ if (next[k]>0) put(n原创 2012-07-06 21:25:12 · 357 阅读 · 0 评论 -
(topo)Sorting it all out(P1094)
这个题就是想要练一下TOPO图的排序,可是一直对题意有误差,最后在discuss里看得到了灵感,,,,逻辑顺序很重要啊,做了几个小时,,值得表扬,,#include#include#include #include #include#includeusing namespace std; #define N 27int n,m;int tt;int原创 2012-05-21 21:58:39 · 480 阅读 · 0 评论 -
(二叉树重建)Tree Recovery(P2255)
#include#include#include #include using namespace std; void build(int n,char *s1,char *s2,char *s){ if (n<=0) return; int p=strchr(s2,s1[0])-s2; build(p,s1+1,s2,s); build (n-p-1,s1+p+1原创 2012-05-21 09:12:32 · 577 阅读 · 0 评论 -
(中分+vector) Running Median(P3784)
中分都是好久才试出来的,,唉,#include#include#include#includeusing namespace std;vector go;int n;int find(int k,int qian,int hou){ //cout<<k<<' '<<qian<<' '<<hou<<endl; int i,j; if (hou<0)原创 2012-05-20 17:52:32 · 539 阅读 · 0 评论 -
(最小生成树+dfs_高效率)Blinking Stalkers(CD1529)
好不容易,,直接用DFS,,DIJ,,BFS都不行,,还得先处理一下,用VECTOR,然后效率才会提上去,,,呜呜,,学到了,#include#include #include#include#include#include#includeusing namespace std;int n,m;int map[1001][1001];int v;bo原创 2012-05-20 11:18:23 · 659 阅读 · 0 评论 -
(A*,IDA*,DFS)eight(p1077)
经典的八数码问题,有人说不做此题人生不完整,哈哈。状态总数是9! = 362880 种,不算太多,可以满足广搜和A*对于空间的需求。状态可以每次都动态生成,也可以生成一次存储起来,我用的动态生成,《组合数学》书上有一种生成排列的方法叫做"序数法",我看了一会书,把由排列到序数,和由序数到排列的两个函数写了出来,就是代码中的int order(const char *s, int n) 和v转载 2012-06-07 03:34:47 · 687 阅读 · 0 评论 -
超级大逃亡
时隔多年,终于搞定思路:看代码#include#include#includeint n,m,l,r;char map[70][70];char cur[70][70];int X,Y;struct my{ int x,y;};int pre[70][70];my q[10000];long long ans=0;bool b[70][70];原创 2013-10-25 16:31:09 · 681 阅读 · 0 评论