HDU4162(最小循环表示)】的更多相关文章

Shape Number Time Limit: 24000/12000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1503    Accepted Submission(s): 743 Problem Description In computer vision, a chain code is a sequence of numbers representing dire…
Time Limit: 3000MS   Memory Limit: 10000K Total Submissions: 4901   Accepted: 2765 Description Once upon a time there was a famous actress. As you may expect, she played mostly Antique Comedies most of all. All the people loved her. But she was not i…
Problem Description Give you a string with length N, you can generate N strings by left shifts. For example let consider the string “SKYLONG”, we can generate seven strings:String Rank SKYLONG 1KYLONGS 2YLONGSK 3LONGSKY 4ONGSKYL 5NGSKYLO 6GSKYLON 7an…
题目链接 BZOJ 洛谷 SAM求字符串的最小循环表示. 因为从根节点出发可以得到所有子串,所以每次找字典序最小的一个出边走即可.因为长度问题把原串再拼接在后面一次. 需要用map存转移.复杂度O(nlogn). 当然还有O(n)的最小表示法. (在BZOJ上慢的一批啊QAQ) //73240kb 2496ms #include <map> #include <cstdio> #include <cctype> #include <algorithm> #d…
Description 求字符串的最小循环表示. Sol SAM. 把原串复制一遍,建出SAM,然后每次选最小的一个跑 \(len\) 次,这就是最小循环表示的最后一个节点,然后 \(x-len+1\) 即为答案. Code #include<cstdio> #include<cstring> #include<iostream> using namespace std; const int N = 20005; int n,rt,lst,cnt,l; int s[N]…
[POJ 3581]Sequence 标签: 后缀数组 题目链接 题意 给你一串序列\(A_i\),保证对于$ \forall i \in [2,n],都有A_1 >A_i$. 现在需要把这个序列分成三段,并且将这三段分别翻转,求如何翻转使整个序列字典序最小.(每一段不能为空) 题解 首先可以确定第一段的位置. 注意到,\(A_1\)是最大的,所以我们就只用考虑怎样找到一个前缀使其翻转后的字典序最小. (假如不是的话,就可能找到两个前缀翻转之后,一个为另一个的前缀,无法解决) 这等价于翻转之后找…
按照顺序来. Median Sum 大意: 给你一个集合,求其所有非空子集的权值的中位数. 某集合的权值即为其元素之和. 1 <= n <= 2000 解: 集合配对,每个集合都配对它的补集. 最大的那个没有配对,所以求(原集合的权值 + 1) >> 1,不小于这个的第一个即为所求. 用bitset实现可行性背包. #include <cstdio> #include <bitset> ; std::bitset<N * N> bt; int a…
Noip前的大抱佛脚----Noip真题复习 Tags: Noip前的大抱佛脚 Noip2010 题目不难,但是三个半小时的话要写四道题还是需要码力,不过按照现在的实力应该不出意外可以AK的. 机器翻译 简单 模拟,复杂度\(O(nm)\) 本题期望得分\(100\),期望用时\(10min\) 乌龟棋 简单 DP,设\(dp[a][b][c][d]\)表示四种卡片各用了多少张,复杂度\(O(40^4)\) 本题期望得分\(100\),期望用时\(10min\) 关押罪犯 简单 图论 数据结构,…
目录 字符串 经验 用FFT求解字符串匹配问题 两(多)串DP时状态合并 最长公共子序列转LIS 位运算最大值 挂链哈希 哈希处理回文串 树哈希 字符串模板库 KMP 最小循环表示 Mancher AC自动机 后缀数组 后缀自动机 字符串 Tags:Noip前的大抱佛脚 经验 用FFT求解字符串匹配问题 一一对应 把其中一个\(Reverse\)后,对于每个字符跑一遍FFT,打上\(Tag\) 如果在某个位置上有串长个\(Tag\)那便是匹配上了一处 模糊匹配 \(Fuzzy Search\)…
题目大意:给你\(A\)个a,\(B\)个b,\(C\)个c,要你构造一个字符串,使它的最小循环表示法最大.求这个表示法.解题思路:不知道怎么证,但把a.b.c当做单独的字符串扔进容器,每次把字典序最小的和字典序最大的两个字符串合并就是答案.容器用multiset即可. C++ Code: #include<cstdio> #include<set> #include<string> using namespace std; multiset<string>…