区间DP
VL——MOESR
ga
展开
-
【集训DAY10】Tree【区间DP】
区间DP原创 2022-07-20 19:50:59 · 57 阅读 · 0 评论 -
【2021年10月6日提高B组】大哥扛纵连
思路: 70points做法 直接预处理暴力前缀和mn统计 codecodecode #include<iostream> #include<cstdio> #include<cmath> using namespace std; long long n, m; long long a[10100], f[10100][20]; long long sum[2021][2021]; int main() { scanf("%lld%lld", &n,..原创 2021-10-06 16:40:03 · 72 阅读 · 0 评论 -
2021.08.16【NOIP提高B组】模拟 USACO 2021 February Contest, Gold】Problem 2 Modern Art 3
思路: 区间DP,a[l]=a[r]时求l~r就是l+1到r或l到r-1 codecodecode #include<iostream> #include<cstdio> #include<cstring> using namespace std; int f[1010][1010]; int a[1010], n; int main() { scanf("%d", &n); for(int i=1; i<=n; i++) scanf(..原创 2021-08-16 20:44:31 · 112 阅读 · 0 评论 -
【Luogu_P1040】加分二叉树
原题链接 问题描述 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下: subtree的左子树的加分× subtree的右子树的加分+subtree的根的分数 若某个子树为空,规定其加分为1,叶子的加分就是叶节点本身的分数。不考虑它的空子树。 试求一棵符合中序遍历为(1,2,3,…,n)且加分原创 2020-08-13 10:49:48 · 100 阅读 · 1 评论 -
【YBTOJ】石子合并
思路: 区间DP模板题 codecodecode #include<iostream> #include<cstdio> using namespace std; int n; int a[1010], f[1010][1010]; int sum[1010]; int main() { scanf("%d", &n); for(int i=1; i<=n; i++) scanf("%d", &a[i]); for(int i=1; i&l..原创 2021-07-08 20:53:29 · 88 阅读 · 0 评论 -
【YBTOJ】消除木块
思路: 将一段两端颜色相同的涂色就相当于给 i ~ j - 1 或 i + 1 ~ j 涂色 不同的就分两段 codecodecode #include<iostream> #include<cstdio> #include<cstring> using namespace std; int f[1010][1010]; string c; int main() { cin>>c; int n=c.size(); memset(f, 1, ..原创 2021-07-09 09:28:50 · 106 阅读 · 0 评论 -
【YBTOJ】消除木块
思路: 我们先预处理颜色相同且连续的为一个颜色块的长度和颜色 设f[i][j][k]表示删除i到j,后面跟着有k个和j相同颜色的木块的最大分 则设一个中转点l使l和j的颜色相同,则 f[i][j][k]=f[i][l][k+len[r]]+f[i+1][r-1][0](先把l到j之间的方块消除) codecodecode #include<iostream> #include<cstdio> #include<cstring> using namespace st..原创 2021-07-09 11:29:00 · 148 阅读 · 0 评论