04 2015 档案

hdu 4963(中途相遇法)
摘要:题目链接:Dividing a String题意:给定一个2*n(n#include #include #include #include #include #include #define LL long longusing namespace std;const int inf = 0x3f3f... 阅读全文

posted @ 2015-04-29 17:52 lienus 阅读(556) 评论(0) 推荐(0)

UVALive 6869(后缀数组)
摘要:传送门:Repeated Substrings题意:给定一个字符串,求至少重复一次的不同子串个数。分析:模拟写出子符串后缀并排好序可以发现,每次出现新的重复子串个数都是由现在的height值减去前一个height值。#include #include #include #include #inclu... 阅读全文

posted @ 2015-04-27 12:14 lienus 阅读(277) 评论(0) 推荐(0)

AC自动机小结
摘要:AC自动机在trie树上实现KMP的一种数据结构,可以完成多模式串的匹配,核心要理解fail指针的含义,即让当前字符失配时跳转到具有最长公共前后缀的字符继续匹配,从根节点到当前节点(s)fail指针的节点(p)的路径字符串必定为从根节点到节点s的路径字符串的一个后缀,还有理解trie图,当字符串... 阅读全文

posted @ 2015-04-23 22:18 lienus 阅读(208) 评论(0) 推荐(0)

poj 2409+2154+2888(Burnside定理)
摘要:三道burnside入门题:Burnside定理主要理解置换群置换后每种不动点的个数,然后n种不动点的染色数总和/n为answer。对于旋转,旋转i个时不动点为gcd(n,i).传送门:poj 2409#include #include #include #include #include #inc... 阅读全文

posted @ 2015-04-11 01:44 lienus 阅读(331) 评论(0) 推荐(0)

HUST 1569(Burnside定理+容斥+数位dp+矩阵快速幂)
摘要:传送门:Gift题意:由n(n#include #include #include #include #include #define LL long long#define N 25#define mod 1000000007using namespace std;/***************... 阅读全文

posted @ 2015-04-06 00:25 lienus 阅读(461) 评论(0) 推荐(0)

bunoj 34990(hash)
摘要:传送门:Justice String题意:有两个串A,B,问是否存在A的一个子串S,S和B的长度相等,最多有2个字符不同。如果有多个,输出其实下标最小S的下标,没有输出-1。分析:从A每个位置开始找最长公共前缀,如果最长公共前缀长度不大于lenb,继续从下一次位置开始找,至多找两次,如果一直找不到就... 阅读全文

posted @ 2015-04-03 14:19 lienus 阅读(416) 评论(0) 推荐(0)

CSU 1506(最小费用最大流)
摘要:传送门:Double Shortest Paths题意:有两个人;给出路径之间第一个人走所需要的费用和第二个人走所需要的费用(在第一个人所需的 费用上再加上第二次的费用);求两个人一共所需要的最小费用。分析:建立超源和超汇,流量分别为2,从源点到汇点的最大流2时最小费用为答案。#include #i... 阅读全文

posted @ 2015-04-03 00:29 lienus 阅读(189) 评论(0) 推荐(0)

CF 514C(hash)
摘要:传送门:Watto and Mechanism题意:输入a个字符串和b个待检测字符串。问待检测字符串是否可以由某个已知字符串改变且只改变一个字母得到。分析:字符串hash,枚举待测字符串每一位进行修改,看是否符合,好像正解是trie树。#include #include #include #incl... 阅读全文

posted @ 2015-04-01 18:59 lienus 阅读(247) 评论(0) 推荐(0)

导航