
SAM
青烟绕指柔!
我不怕千万人阻挡,只怕自己投降。
展开
-
HDU - 6583
题目链接:HDU - 6583 显然可以dp, dp[i] 为以 i 结尾的最小花费。 dp[i]=min(dp[i-1]+p,dp[j]+q)保证 str(j+1,i) 为 str(1,j) 的子串即可。 显然这个花费是单调递增的。由子串的性质可以证明。 所以我们枚举的时候,可以用 尺取 + SAM 求出可以转移的最远的 j 。 AC代码: #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h>原创 2020-07-28 11:34:43 · 307 阅读 · 0 评论 -
SP1811 LCS
题目链接:SP1811 LCS 对串A建立SAM,计算每一个b字符结尾的答案。 对于当前字符有向下的转移就直接 len++,跳过去。 否则一直向上跳父亲。 AC代码: #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h> //#define int long long using na...原创 2020-03-30 11:40:02 · 226 阅读 · 0 评论