题目传送门 传送点I 传送点II 传送点III 题目大意 给定一个字符串$s$,和一个字符串$t$,$t$只包含小写字母,$s$包含小写字母和通配符'?'.询问$t$可能在$s$中出现最多多少次. 原来觉得挺神仙,现在觉得还好. 显然用$g_{i}$表示在匹配到第$i$个字符,最多能匹配$t$的次数. 现在讨论它的转移,需要考虑它和前一个匹配有没有重叠. 如果没有重叠,直接从$g_{i - |t|}$转移. 如果有重叠,上一个可能的匹配的结束位置显然是可以枚举的,通过跳$fail$就能找到.我们…
codeforces 808G Anthem of Berland 题面 给定\(s\)串和\(t\)串,字符集是小写字母.\(s\)串中有些位置的值不确定,要求你确定这些位置上的值,使得\(t\)在\(s\)中出现次数最多,输出最多出现次数. 参考博客 http://www.cnblogs.com/Oncle-Ha/p/7061929.html 题解 AC自动机预处理 \(ne[i][j]\):字符串 \(t[i]+j\) 的后缀最长匹配到 \(t[ne[i][j]]\). 状态\(f[i][…
题意 给定一个字符串 \(s\) ,一个字符串 \(t\) ,其中 \(s\) 包含小写字母和 "?" ,\(t\) 只包含小写字母,现在把 \(s\) 中的问号替换成任意的小写字母,求 \(t\) 最多在 \(s\) 中出现多少次,\(t\) 可以互相覆盖. \(1 \leq |s| \leq 10^5\) \(1 \leq |t| \leq 10^5\) \(1 \leq |s|\cdot|t| \leq 10^7\) 思路 由于 \(|s|\cdot|t| \leq 10^7\)…
LINK 简要题意 给你一个串s,上面有字母和一些通配符,问你将通配符换成字母之后最多可以出现多少次串t 首先有一个很傻子的做法就是\(dp_{i,j}\)表示s到第i个位置匹配t串前j个字符的完整t串个数 然后每次枚举前缀看看能不能转移...太不优秀了 那么就考虑这样做: \(dp_{i}\)表示最后一个出现的完整的串t在第i个位置结尾的最大出现次数 \(maxv_{i}\)表示最后一个出现的完整的串t在第i个位置前结尾的最大出现次数 首先有一个转移是,如果当前位置被匹配,那么\(dp_{i}…
题目链接:http://codeforces.com/contest/219/problem/D 树dp //#pragma comment(linker, "/STACK:102400000, 102400000") #include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include…
队友的建议,让我去学一学kuangbin的基础dp,在这里小小的整理总结一下吧. 首先我感觉自己还远远不够称为一个dp选手,一是这些题目还远不够,二是定义状态的经验不足.不过这些题目让我在一定程度上加深了对dp的理解,但要想搞好dp,还需要多多练习啊. HDU - 1024 开场高能 给出一个数列,分成m段,求这m段的和的最大值,dp[i][j]表示遍历到第i个数,已经划分了j段,对于每一个数有两种决策,加入上一个区间段,自己成为一个区间段,故dp[i][j] = max(dp[i-1][j]+…
KMP基础,注意输入 #include<cstdio> #include<cstring> #include<iostream> using namespace std; ],p[]; ]; void getNext(char *p,int *next) { int j,k; next[]=-; j=,k=-; ) { ||p[j]==p[k]) { j++; k++; next[j]=k; } else k=next[k]; } } int KMP(char *s,c…
本文主要内容为基础DP,内容来源为<算法导论>,总结不易,转载请注明出处. 后续会更新出kuanbin关于基础DP的题目...... 动态规划: 动态规划用于子问题重叠的情况,即不同的子问题具有相同的公共子子问题,在这种情况下分治算法会做许多不必要的工作,它会反复求解那些子子问题使得程序边的缓慢.而动态规划则对每个问题 只求解一次,将其解保存在一个表格中,从而避免一些不必要的重复计算. 动态规划常用来求解最优化问题,这类问题可以有很多解,每个解都有一个值,我们希望寻找具有最优值的解,我们称这样…
Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Description There is a number sequence A1,A2....An,you can select a interval [l,r] or not,all the numbers Ai(l≤i≤r) will become f(Ai).f(x)=(1890x+143)mod1…
Number String Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1935    Accepted Submission(s): 931 Problem Description The signature of a permutation is a string that is computed as follows: for…