随笔分类 - DP
摘要:有点小细节需要注意 sum实时维护有效的连续和 C++ / H E A D / ll dp1[maxn],dp2[maxn]; ll a[maxn],n,sum; int main(){ while(~iin(n)){ rep(i,1,n) a[i]=read(); dp1[0]= (1ll
阅读全文
摘要:题目的匹配应该也要看成一个文本串与另一个模式串的匹配过程 Text是以当前i结尾的后缀来匹配Pattern的前缀(非真) 这里的Pattern肯定是可以匹配成功的,直接由next来保证(next总是当前结尾的最大前缀,恰好满足递推的需要) (说的不是很准确,就是kmp匹配过程时使用的方法) 举个栗子
阅读全文
摘要:这道题被马老板毒瘤了一下,TLE到怀疑人生 //然而BZOJ上妥妥地过了(5500ms+ 400ms+) 要么SPFA太玄学要么是初始化block被卡到O(n^4) 不管了,不改了 另外DP方程值得学习 C++ include define rep(i,j,k) for(int i=j;i vec[
阅读全文
摘要:dp[i][j]:用A的前i的字符和B的前j个字符能否组成i+j长度的合法C串 O(n^2)的方法有点糟糕
阅读全文
摘要:写了两种DP,第一种是按照自己习惯来xjb敲的,第二种参考别人 熟悉一下树形DP的套路 dp[i][]是维护i及以下的关系最优值的,所以我觉得两次DP记忆搜索之间不清 1应该是正确的(也就做了一次加法) C++ include define rep(i,j,k) for(register int i
阅读全文
摘要:感觉像是HDU Keyboard的加强版,先推出3张牌时的所有组合,然后递推出n张牌 看到n=1e18时吓尿了 最后24那里还是推错了.. (5行1列 dp[1][n],dp[2][n],dp[3][n],dp[4][n],dp[5][n]) = A^(n 3) (5行1列 4,12,12,12,2
阅读全文
摘要:集合表示多用[0,n)表示方法 HDU 5067 经典TSP,每个顶点恰经过一次最优 C++ include define rep(i,j,k) for(int i=j;i P; int dp[1=0) return dp[S][v]; if(S==(1 u&1)){ ans=min(ans,DP(
阅读全文

浙公网安备 33010602011771号