hdu 5343 MZL's Circle Zhou SAM】的更多相关文章

MZL's Circle Zhou 题意:给定两个长度不超过a,b(1 <= |a|,|b| <= 90000),x为a的连续子串,b为y的连续子串(x和y均可以是空串):问x+y形成的不同串的个数? 误区:开始一门心思想着求出总的可形成的字符串个数,再减去a,b中相同的子串重叠的部分:想通过连续插入a+b得到的SAM并不能获得信息:因为x,y是任意的子串,连续插入导致一定是a的后缀和b的前缀 正解:直接在计算有不同子串时,就不去计算重复的 <=>对于一个可能出现x后缀和y前缀相同…
MZL's Circle Zhou Time Limit: 1000ms Memory Limit: 131072KB This problem will be judged on HDU. Original ID: 534364-bit integer IO format: %I64d      Java class name: Main   MZL's Circle Zhou is good at solving some counting problems. One day, he com…
MZL's Circle Zhou Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Problem Description   MZL's Circle Zhou is good at solving some counting problems. One day, he comes up with a counting problem:You are given two…
Problem Description MZL's Circle Zhou is good at solving some counting problems. One day, he comes up with a counting problem:You are given two strings a,b which consist of only lowercase English letters. You can subtract a substring x (maybe empty)…
Description Input Output Sample Input Sample Output Solution 题意:给你两个串,分别从两个里面各选出一个子串拼到一起,问能构成多少个本质不同的字符串. 首先考虑一下,什么时候一个串会被重复计算. 例如假设串$abcad$,可以由$ab+cad$或$a+bcad$组成. 第一个串中可以用$ab$,也可以用$a$.$a$可以构成$abcad$,那么$ab$也能构成$abcad$. 也就是说,我们要在第一个串中找一个最靠右的,然后再到第二个串…
题目大意: 给你两个字符串a和b,从中分别取出子串x和y,求不同的x+y的个数. 思路: 对于每一个字符串,构建SAM. 为了保证相同的x+y不会被重复统计,我们可以想办法只统计相同的x+y中x最长的一种情况. 考虑在SAM上DP. 用DFS对a的SAM进行遍历,若当前遍历到的串x不能加上字符c时,在b的SAM中寻找以c开头的y,显然对于这样的x+y,x一定是最长的. 然后用G++交到HDU上发现TLE了. 觉得是自己DFS哪里死循环了,未果. 感觉是被卡常数,用C++交了一发,WA. 觉得自己…
[HDU 5351 MZL's Border]题意 定义字符串$f_1=b,f_2=a,f_i=f_{i-1}f_{i-2}$. 对$f_n$的长度为$m$的前缀$s$, 求最大的$k$满足$s[1]=s[m-k+1],s[2]=s[m-k+2]...s[k]=s[m]$ Solution 先列出前几个字符串 $f_3=ab,f_4=aba,f_5=abaab,f_6=abaababa,f_7=abaababaabaab$. 对于n,m. 假设$f_{n-1}$的长度大于等于$m$,那么相当于求…
题目链接: Hdu 5352 MZL's City 题目描述: 有n各节点,m个操作.刚开始的时候节点都是相互独立的,一共有三种操作: 1:把所有和x在一个连通块内的未重建过的点全部重建. 2:建立一条双向路(x,y) 3:又发生了地震,p条路被毁. 问最后最多有多少个节点被重建,输出重建节点的最小字典序. 解题思路: 这几天正好在学匹配,但是昨天下午还是没有看出来这个是匹配题目.看了题解扪心自问了自己三次,是不是傻.就是把每个需要重建的节点x拆成k个点,然后对每个拆分后的点和与拆点在同一连通块…
题目链接: Hdu 5348 MZL's endless loop 题目描述: 给出一个无向图(有环,有重边),包含n个顶点,m条边,问能否给m条边指定方向,使每个顶点都满足abs(出度-入度)<2.如果能输出任意一种合法方案. 解题思路: 其实仔细考虑一下,每个无向图都会存在合法方案的.证明:度数和为奇数的点只能为起点或者终点,度数为偶数的只能是环上的起点或者终点或者是中间点.有m条边,一共有2*m个端点.所以呢?当然是度数和为奇数的个肯定是偶数个,任意两个相结合都可以形成一条路.并不会有两条…
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5349 MZL's simple problem Description A simple problemProblem DescriptionYou have a multiple set,and now there are three kinds of operations:1 x : add number x to set2 : delete the minimum number (if the…