摘要: 关于动态规划(Dynamic Programming)的若干思考 ------ [5.树形dp] 没有上司的舞会 题目描述 Ural 大学有 N 个职员,编号为 1~N。他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。每个职员有一个快乐指数。现在有个周年庆宴会,要求与会职员的快乐指数最大。但是,没有职员愿和直接上司一起与会。 输入格式 第一行一个整数 N。( 阅读全文
posted @ 2024-02-17 16:24 十萧 阅读(24) 评论(0) 推荐(0)
摘要: 关于动态规划(Dynamic Programming)的若干思考 ------ [4.坐标dp] 1单层 2多层 3也是多层但需要高精(int128也能过) 3个题本质上都是区间dp 矩形取数<1> 领域展开 #include<bits/stdc++.h> #define ll __int128 const int maxn=6666; using namespace std; ll f[max 阅读全文
posted @ 2024-02-17 16:24 十萧 阅读(16) 评论(0) 推荐(0)
摘要: 关于动态规划(Dynamic Programming)的若干思考 ------ [3.区间dp] 石子合并<1> 领域展开 #include <bits/stdc++.h> using namespace std; const int maxn = 200; int s[maxn]; int f[maxn][maxn], g[maxn][maxn]; int main() { int n; ci 阅读全文
posted @ 2024-02-17 16:23 十萧 阅读(10) 评论(0) 推荐(0)
摘要: 关于动态规划(Dynamic Programming)的若干思考 ------ [2.线性dp] 线性dp的两个经典题目: 1.最长上升子序列(LIS) 难的是输出路径(递归输出即可) 领域展开 #include <bits/stdc++.h> using namespace std; const int maxn =2024; int cnt=0,ans=1; int f[maxn],a[ma 阅读全文
posted @ 2024-02-17 16:23 十萧 阅读(23) 评论(2) 推荐(1)
摘要: 关于动态规划(Dynamic Programming)的若干思考 ------ [1.背包dp] 1.01 背包 动态转移方程: f[i,j]表示前i个物品中选出总体积为j的物品所获得的最大价值。 f[i,j]=f[i-1,j](不选第i个物品) f[i,j]=f[i-1,j-vi]+wi(选第i个物品) (1)二维数组 open #include<bits/stdc++.h>//simple 阅读全文
posted @ 2024-02-17 14:20 十萧 阅读(36) 评论(0) 推荐(0)