摘要:
字符串最小表示是指一个给定一个字符串,从特定的为止开始比如说abc可以使bca也可以是cab在这些表示中间,abc是字典序最小的,则abc就是这个字符串的最小表示。字符串最小表示的暴力方法很容易想,就是枚举每一个位置的字符为起始字符,分别比较字典序大小。而我们今天要讨论的是一个O(n)的算法,在线性时间内找到一个字符串的最小表示比如说一个字符串bacad我们一样去找字符串的初始位置,只是不再去全部枚举完所有的字符,比如说,我们知道b>a那么第一个位置肯定不是字符串最小表示的位置,而在两个a的地方,我们需要往下比较,因为c<d所以,第二个a也不是最小表示的位置,以此类推,最后可以确定 阅读全文
posted @ 2012-05-20 23:01
zhenhai
阅读(437)
评论(0)
推荐(0)
摘要:
应用karp算法找最大流的模板题,对最大流一直都是不很懂,看着别人的代码打完这个感觉像是懂了点,就是一直找增广路径,直到找不到为止,求出来的就是整个的最大流View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<queue> 5 #define min(x,y) x<y?x:y 6 #define N 20 7 #define inf 0x7fffffff 8 using namespace std; 9 int tcase,n,m;1 阅读全文
posted @ 2012-05-20 22:52
zhenhai
阅读(185)
评论(0)
推荐(0)
摘要:
旋转卡壳或者直接求出来凸包之后直接枚举凸包上的点都可以,而且时间上其实差不多,理论上确实旋转卡壳比凸包要快,但是这个题看来是数据的问题,谁也不会去打个几万条边的多边形,那太费劲了View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #define N 30005 5 #define max(a,b) a>b?a:b 6 struct point 7 { 8 long long x,y; 9 }; 10 point p[N]; 11 point sta[N]; 阅读全文
posted @ 2012-05-20 20:57
zhenhai
阅读(173)
评论(0)
推荐(0)

浙公网安备 33010602011771号