- 博客(6)
- 收藏
- 关注
原创 洛谷 1196(带权并查集)洛谷1220(区间dp) CF607B(区间dp)
洛谷1196用标准并查集可以检测两个战舰是否在一列中。一列战舰查找两个战舰中间有几个战舰,可以引入前缀和思想,若知道两个战舰距离队首的距离分别是多少,即可知道其之间距离。问题转化为求任意两战舰距离所在队首距离,引出带权并查集。dis[i]dis[i]dis[i]表示战舰iii距离队首距离,sum[i]sum[i]sum[i]表示战舰iii所在队列战舰总数...
2022-05-04 21:22:40
269
原创 洛谷2986 2754
洛谷2986树状dpdp[i]dp[i]dp[i]以iii为根时不方便程度dp[i]=dp[fa[i]]−sumson[i]∗w(i,fa[i])+(n−sumson[i])∗w(i,fa[i])dp[i]=dp[fa[i]]-sumson[i]*w(i,fa[i]) + (n-sumson[i])*w(i,fa[i])dp[i]=dp[fa[i]]−sumson[i]∗w(i,fa[i])+(n−sumson[i])∗w(i,fa[i])sumson[i]sumson[i]sumson[i]以i
2022-04-21 21:22:42
340
原创 (图论)洛谷5022 2294
洛谷5022题目要求字典序最小,但优先队列贪心显然不对,因为向前走只能访问未访问过的点,若一条路的途中回头的话这条路剩余点再也无法访问了。数据范围 m==n−1∣∣m==nm==n-1||m==nm==n−1∣∣m==n,即图必是树或基环树若图是树,贪心取此时端点更小的分支,然后把这个分支的子树全按此规则搜索即可若是基环树,可发现无论什么图,最后都会剩下一条边不走。遍历所有边,求最小答案即可void dfs(int now,int fa){ ans.push_back(now);
2022-04-21 21:05:53
101
原创 CF1077F2 洛谷2215
cf动态规划dp[i][j]dp[i][j]dp[i][j] 第iii 个元素被选择且此时共选择 jjj 个元素最佳答案每kkk 个至少选一个可得 dp[i][j]=max(dp[o][j−1])dp[i][j] = max(dp[o][j-1])dp[i][j]=max(dp[o][j−1]) , i−k≤o≤i−1i-k \leq o \leq i-1i−k≤o≤i−1 ,区间最值,单调队列优化此情况Q[i]Q[i]Q[i]代表dp[o][i]dp[o][i]dp[o][i] 的最值序列,因此.
2022-04-15 17:06:39
410
原创 洛谷4933 5858 dp
L4933线性dpdp[i][j]dp[i][j]dp[i][j] 以第iii座塔为结尾公差为jjj的答案数无需遍历公差,n2n^2n2遍历两座塔则公差已确定公差可能为负,先变成正数转移方程for(int i=1;i<=n;i++) for(int j=1;j<i;j++) { int lop=h[i]-h[j]+Max;// 公差变正数 dp[i][lop]+=dp[j][lop]+1; d.
2022-04-15 16:20:37
235
原创 洛谷 4095 线性dp
L4095线性dpdp[i][j][0/1/2]dp[i][j][0/1/2]dp[i][j][0/1/2] aaa串前iii位已匹配 bbb串前jjj位已匹配,且此时后缀空格位置分别在 aaa bbb 已匹配子串后 时的 最优答案不可能出现两个已匹配子串后均有空格的情况,因为可以直接把空格去掉减小负贡献字符串每一位都会和空格或其他字符匹配,可以此得出状态转移思路,即dp[i][j][1]dp[i][j][1]dp[i][j][1] 只会从dp[i][j−1][0/1/2]dp[i][j-1][
2022-04-15 15:59:40
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人