摘要: KMP基础题,一开始思路没有理清楚导致写了好久。。。 悲催。要搞清楚题意,题目所围绕的是KMP算法中对自身串进行匹配的那一步假设有两个串 S,T , 我们要求的是S是否存在T中。其中我用的save[i],表示在i位置的后save[j]-1和S串的前save[i]-1个相等, 然后根据这个性质就可以解决String-Matching AutomataTime Limit:1000MSMemory Limit:65536KTotal Submissions:113Accepted:70DescriptionThe finite state automaton (FSA) is an importa 阅读全文
posted @ 2013-05-20 23:05 chenhuan001 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 和poj 3352 一样, 相同的代码都能过。#include <stdio.h>#include <string.h>#include <iostream>using namespace std;#define N 5050#define M 10010#define INF 0x3fffffffstruct node{ int from,to,next;}edge[2*M];int n,m;int cnt,pre[N];bool mark[2*M];bool save[2*M];int low[N];int link[N];int d[N];void a 阅读全文
posted @ 2013-05-20 17:41 chenhuan001 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 先求出桥,然后去除桥后得到边双联通分量, 将边联通分量缩成一个点, 然后就出所有度为1的点(叶子节点)个数n,答案就是n/2+n%2.#include <stdio.h>#include <string.h>#include <iostream>using namespace std;#define N 5050#define M 10010#define INF 0x3fffffffstruct node{ int from,to,next;}edge[2*M];int n,m;int cnt,pre[N];bool mark[2*M];bool save 阅读全文
posted @ 2013-05-20 17:26 chenhuan001 阅读(140) 评论(0) 推荐(0) 编辑