- 博客(16)
- 收藏
- 关注
原创 poj 1988 Cube Stacking 并查集
#include #define maxn 40000int p[maxn],sum[maxn],d[maxn];int find(int x){ if(p[x]==x) return x; else { int tmp=p[x]; p[x]=find(p[x]); d[x]+=d[tmp]; retu
2014-06-27 17:07:39 499
原创 hdu 3395 Special Fish 带权匹配 费用流
#include #include #include using namespace std;const int N=1300;const int MAXE=200000;const int inf=1<<30;int head[N],s,t,cnt,n,ans;int d[N],pre[N];bool vis[N];int q[MAXE];int val[110];cha
2014-06-25 21:25:16 520
原创 判断一条边能不能在最小割集里
首先对原图求最大流直到没有增广路。此时,有向边(i, j)可以存在于最小割集中,当且仅当——一、(i, j)正向满流。二、在残余网络中没有从i到j的有向路,使得沿途经过的弧都是非饱和的。POJ 1815 Friendship 涉及这个引理的应用。
2014-06-24 23:09:48 1637
原创 zoj 2587 Unique Attack 网络流
#include #include #include using namespace std;#define inf 10000000const int maxn=1500;int n,m;int from[maxn],to[maxn];int level[maxn],que[maxn];int head[maxn],lon;int min(int a,int b){ if
2014-06-24 16:36:43 425
原创 poj 3204 Ikki's Story I - Road Reconstruction && zoj 2532 Internship 网络流关键边
#include #include #include using namespace std;const int maxn=1000;#define inf 1000000int n,m;int from[maxn],to[maxn];int level[maxn],que[maxn];int head[maxn],lon;int num[15000];int min(int
2014-06-24 11:47:58 453
原创 hdu 3695 Computer Virus on Planet Pandora ac自动机
#include #include #include using namespace std;#define SIGMA_SIZE 30#define MAXNODE 300000int ch[MAXNODE][SIGMA_SIZE];int f[MAXNODE]; // fail函数int val[MAXNODE]; // 每个字符串的结尾结点都有一个非0的valint
2014-06-23 16:05:49 516
原创 cf 408D - Long Path dp
题意:有一排房间每个房间有两扇门,一扇通往第i+1个房间,另一扇通往第p[i]个房间,然后他每经过一个房间就做一个标记,只有偶数个标记时他才会走第一扇门。问你他要走多少单位时间。
2014-06-15 21:11:59 631
原创 hdu 3613 Best Reward 扩展kmp
#include#include#includeusing namespace std;const int MM=500100;int next1[MM],extand1[MM];int next2[MM],extand2[MM];int sum[MM];char S[MM],T[MM];int val[30];void GetNext(const char *T,int *n
2014-06-15 15:15:05 392
原创 hdu 4333 Revolving Digits 扩展kmp
#include#include #includeusing namespace std;const int MM=201000;int next[MM],extand[MM],next2[MM];char S[MM],T[MM];void GetNext(const char *T){ int len=strlen(T),a=0; next[0]=len;
2014-06-10 22:40:34 346
原创 hdu 3068 最长回文 manacher
#include#include#includeusing namespace std;#define maxx 20000050char str[2*maxx];char s[maxx];int p[maxx];void Manacher(int *p,char *str,int len){ int mx=0; int idx=0; for(int i=
2014-06-10 21:01:19 491
原创 poj 3680 Intervals 费用流
#include #include #include #include using namespace std;const int MAXN=40000;const int MAXE=20000000;const int inf=1<<30;int head[MAXN],s,t,cnt,ans;int d[MAXN],pre[MAXN];bool vis[MAXN];int
2014-06-08 12:08:18 399
原创 两个kmp hdu 2594 & hdu 2087
#include #include char a[110000],b[110000];int p[110000];int main(){ int i,j; int y; while(scanf("%s",b+1)!=EOF) { int len=strlen(b+1); b[len+1]='X'; b[len
2014-06-08 10:57:24 381
原创 hdu 3746 Cyclic Nacklace
#include #include char b[100020];int p[100020];int main(){ int i,j,y; int cas; scanf("%ld",&cas); while(cas--) { scanf("%s",b+1); y=strlen(b+1); j=0;
2014-06-06 13:37:03 378
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人