- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 codeforces 321# E. Kefa and Watch (线段树+字符串hash)
题目:http://codeforces.com/contest/580/problem/E题意:给定长度为n的字符串,然后有修改和查询操作。修改:将区间[l,r]的字符改为c。查询:查询区间[l,r]的子串的周期是否d。分析:Obviously, the substring from l to r have a d-period, if a substring from l + d
2015-09-24 16:33:25 636
原创 codeforces 321# D. Kefa and Dishes (状态压缩DP)
题目:http://codeforces.com/contest/580/problem/D题意:有n种菜(每一种菜有一个满意值ai>=0),你准备吃m种,每种一次。但是如果你按某种规则吃两种菜的话会增加额外的满意值,比如规则(xi yi ci)就是你先吃第xi个菜,然后马上吃第yi个菜,那么你就会额外增加ci点满意值。有k个这样的规则,问你吃m种菜后的最大满意值是多少。分析:定义dp[i
2015-09-24 16:16:59 1107
原创 hdu 4699 Editor (巧用两个栈)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4699题意:EditorTime Limit: 3000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 2306 Accepted Submiss
2015-09-22 14:50:33 384
原创 cf 320# Weakness and Poorness(三分+最大连续和)
题目:http://codeforces.com/problemset/problem/578/C题意:给定n个数,找一个实数x,然后n个数都减去x,使得ans=max(|最小连续和|,|最大连续和|)最小。求ans。分析:啊,印象中的第一个三分。|最大连续和|与x逆增长,|最小连续和|与x正增长,形成抛物线,三分x就行了。代码:#include #include #inclu
2015-09-17 22:26:51 536
原创 cf 320# "Or" Game (位运算)
题目:http://codeforces.com/problemset/problem/578/B题意:给定n、k、p,和n个数。你可以对某些或者某个数乘上一次或者少于k次的p(一个数可以乘多次,总共最多使用k次),求新数列‘|’起来的最大值。分析:注意到起决定性作用的是二进制的最高位。假如选择了一个数*p,那么剩下的k-1次也应该用在这个数上。直接暴力枚举哪个数就行了。代码:
2015-09-17 22:15:08 506
原创 cf 320# A Problem about Polyline (二分)
题目:http://codeforces.com/problemset/problem/578/A题意:给定一种波形 (0, 0) – (x, x) – (2x, 0) – (3x, x) – (4x, 0) – ... - (2kx, 0) – (2kx + x, x) – ....,求出最小的x,使得整点s(a,b)在波形上,不存在x则输出-1。分析:若存在一点p(2kx,0)
2015-09-17 22:05:45 737
原创 hdu 5442 Favorite Donut(后缀数组)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5442题意:给定长度为n的字符串s(s是环),然后以某一点顺时针或者逆时针出发遍历字符串s将得到一个t,求一个字典序最大的字符串t的起始位置。字典序相同的选起始位置靠前的,位置相同的选顺时针的。分析:将原来的字符串添加字符,使得前n个字符,每个字符与其后面的n-1个字符正是循环遍历的字符串。比如aa
2015-09-16 10:44:37 482
原创 BNUOJ 34990 Justice String (基于hash的LCP)
题目:http://www.bnuoj.com/v3/problem_show.php?pid=34990题意:给定字符串A和B,在A里面找一个子串s,在s里面最多修改2个字符后使得s和B相同。求s的起始位置。分析:枚举起点求s和B的LCP。看s最多修改两次后是否满足条件。代码:#include #include #include #include using na
2015-09-14 13:40:29 678
原创 hdu 4691 Front compression (基于hash的LCP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4691题意:分析:直接求LCP啊。。。代码:#include #include #include #include using namespace std;typedef unsigned long long ULL;const int maxn = 1e5+6;const i
2015-09-14 13:32:04 443
原创 hdu 4552 怪盗基德的挑战书 (基于hash的LCP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4552题意:分析:若某一后缀S与文本串T的LCP等于x,那么此后缀对答案的贡献为x,枚举后缀即可。代码:#include #include #include using namespace std;typedef unsigned long long ULL;const int m
2015-09-14 13:27:38 558
原创 uvalive 4513 Stammering Aliens (基于Hash的LCP+二分)
题目:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2514题意:给定一个字符串T,在T里面找出一个子串s使得子串s在T里面至少出现m次。输出最长字符串的长度和起始位置的最大值。(起始位置从0开始 )如果不存在输出“none”。
2015-09-14 13:19:25 709
原创 uvalive 3907 Puzzle (ac自动机+有向图判环+dp)
题目:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1908题意:给定大写字母的前n个字符,然后给m个禁止的串,求一个最长的串不包含这些禁止的串(只包含大写字母前n个字符,禁止的串也是)。如无解输出“No”。分析:无解的情况
2015-09-09 22:28:21 612
原创 hdu 5384 Danganronpa (ac自动机)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5384题意:很直接的多模式匹配,不过这里的文本串有多个。分析:建ac机的时候,把到达每个节点的贡献算出来,这样匹配的时候就不用在ac机上回溯了。时间复杂度O(|A|+|B|)。代码:#include #include #include #include #include u
2015-09-07 12:57:09 433
原创 hdu 2825 Wireless Password (ac自动机+状态压缩dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2825题意:给定m个模式串,问有多少个长为n的文本串至少包含K种模式串。分析:首先将模式串建ac自动机,然后在求fail指针的时候把到达某个节点需要加的贡献求出来(由于最多只有10种模式串,可以将模式串种数压缩到一个int型)。然后记忆化搜索,dp[len][cur][num],len代表当
2015-09-07 12:45:42 392
原创 hdu 2457 DNA repair (ac自动机+记忆化搜索)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2457题意:给出N个DNA序列(只包含’A‘,'T','G','C'四种字符),然给一段DNA序列S,问最少改多少个字符使得这个DNA序列不包含前面任意一个DNA序列。分析:将前面N个DNA序列建ac自动机,然后找出禁止走的位置。定义dp[i][j],i表示当前在字符串S的位置,j表示对应在
2015-09-06 13:06:06 450
原创 poj 2778 DNA Sequence (ac自动机+矩阵快速幂优化dp)
题目:http://poj.org/problem?id=2778题意:给出N段DNA序列(仅由‘A’,'T','G','C'四种字符组成),求一段长为L的DNA序列不包含前面给出的任何DNA序列的方案数。分析:将N个字符串建成ac自动机,然后把所有禁止走的位置标记出来,然后利用ac自动机建二维矩阵Matrix[][],Matrix[u][v]表示节点u走一步到节点v的路径数。然后
2015-09-06 12:15:46 490
原创 zoj 3494 BCD Code (ac自动机+数位dp)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4317题意:给定N个01串,再给定区间[a,b],问区间[a,b]里面有多少个数转化成BCD码之后不包含任何前面给出01串。分析:首先将01串建ac自动机,然后把不可到达的点标记出来。用二维数组Matrix[][]把状态转移图(比如Matirx[cur][x
2015-09-05 11:16:42 905
原创 uva 11468 Substring (ac自动机+记忆化搜索)
题目:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2463题意:给出一些字符和格子对应的选择概率,随机选择L次后将得到一个长度为L的随机字符串S(每次独立随机)。给出K个模版串,计算S不包含任何模版串的概率(即任何一个模版串都不是S的连续子串)。
2015-09-03 21:56:20 451
原创 uva 11019 Matrix Matcher (ac自动机二维匹配)
题目:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1960题意:求模式矩阵M在文本矩阵T出现的次数。分析:将模式矩阵每行当模式串并建ac自动机,然后在T中的各行逐一匹配,找到M中每一行的所有匹配点。用二维数组c[i][j]记录以(i,j)为左上
2015-09-03 21:38:40 398
原创 LA 4670 Dominating Patterns (ac自动机)
题目:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2671题意:求哪些模式串在文本串里面出现的次数最多,输出次数和这些串。分析:在ac自动机里面标记模式串的id,用map记录。代码:#include #include
2015-09-03 21:27:12 458
原创 hdu 2222 Keywords Search (ac自动机)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2222题意:求有多少个模式串出现在文本串里面。分析:ac自动机模版题。说一下自己对ac自动机的理解,①fail指针指向的位置:父亲节点的fail指针指向的位置的一个孩子节点的位置,并且这个孩子节点所代表的字符与当前位置的字符相同。②fail指针的作用:利用fail指针可以在trie中找到一个最长前缀
2015-09-03 21:20:05 485
程序设计导引及在线实践
2015-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人