摘要:
高斯消元 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; const int eps=1e-8; const int N=15; double a[N][N] 阅读全文
posted @ 2022-02-09 21:25
__iostream
阅读(27)
评论(0)
推荐(0)
摘要:
区间dp: 将l~r的区间进行合并 通过枚举分界点来转移状态 环形问题: 断环城链 复制后接起来 之后重点在于只枚举长度为n的区间即可 #include <iostream> #include <cstdio> #include <cstring> const int N=105; const in 阅读全文
posted @ 2022-02-09 17:56
__iostream
阅读(183)
评论(0)
推荐(0)
摘要:
给定一颗树形的网络 叶子结点为汇点 根节点为源点 求最大流量 换根dp: 适用于对于每一个点都要作为根进行一遍dp的题目 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <c 阅读全文
posted @ 2022-02-09 17:44
__iostream
阅读(31)
评论(0)
推荐(0)
摘要:
当一个背包有两个维度的价值的时候 可以考虑把价值压到状态里 这道题记录绝对值的话没有办法唯一确定价值 所以要记录差值 为了保证数组下标始终为正 所以我们要加上偏移量 在记录路径的时候 G不能够省去第一维度了 否则的话记录的只是最后一层从哪里来 就会出错 G只是纯粹的记录从哪里来 不存在递推的关系 # 阅读全文
posted @ 2022-02-09 16:32
__iostream
阅读(76)
评论(0)
推荐(0)
摘要:
树上背包问题 每一个子树就是一组背包 由于最后选根节点 因此根节点可以看做是必须选的一组 才有了后面的递推 void dfs(int x,int fa) { f[x][0]=0; for(int i=head[x];i;i=e[i].next) { int y=e[i].to; if(y==fa) 阅读全文
posted @ 2022-02-09 11:21
__iostream
阅读(33)
评论(0)
推荐(0)
摘要:
每个物品只有一个: 0/1背包 \(f[i][j]=max\{ f[i-1][j],f[i-1][j-V_i]+W_i \}\) 有n个数 构成整数m的方案数 \(f[i][j]=f[i-1][j]+f[i-1][j-a_i]\) 每个物品有无限个: 完全背包 \(f[i][j]=max\{ f[i 阅读全文
posted @ 2022-02-09 11:19
__iostream
阅读(39)
评论(0)
推荐(0)
摘要:
每个孩子有一个贪婪度,第 i 个孩子的贪婪度为 g[i]。 如果有 a[i] 个孩子拿到的饼干数比第 i 个孩子多,那么第 i 个孩子会产生 g[i]×a[i] 的怨气。 给定 N、M 和序列 g,圣诞老人请你帮他安排一种分配方式,使得每个孩子至少分到一块饼干,并且所有孩子的怨气总和最小。 注意到怨 阅读全文
posted @ 2022-02-09 10:55
__iostream
阅读(53)
评论(0)
推荐(0)

浙公网安备 33010602011771号