09 2019 档案

摘要:dp[i][j]代表在i为根 深度为j时的价值河 所以 dp[i][j]=dp[i 2][j 1]+dp[i 2+1][j 1] 重新标一下号 开始跑转移方程即可 include define inf 0x3f3f3f3f using namespace std; const int maxn=5e 阅读全文
posted @ 2019-09-27 21:16 Minun 阅读(129) 评论(0) 推荐(0)
摘要:网络流做法最要是建边 将m点分割限流 建立一个起点 连接2个点在于n相连 不过一个流量是inf 一个是k 再把n m连起来 跑最大流即可 二分图把 n m的边建2遍(注意开的n'是一个新的节点) 跑二分图的时候注意顺序,先跑原本的n的节点 再跑之后新建的n个节点 因为要保证优先不扩流(不用k) 但这 阅读全文
posted @ 2019-09-21 21:12 Minun 阅读(200) 评论(2) 推荐(0)
摘要:需要求的是取p钱,使总的取得硬币数最大 反向思考就是求取sum p的钱,使总的取的硬币数最少 这样贪心起来就容易了 从最大的开始 我们可以观察 除了20 50和200 500之外其余的相邻的2个之间都是倍数关系 所以特殊除了这2个就可以了 又因为20是50+50的倍数 所以在取50的时候要考虑少取一 阅读全文
posted @ 2019-09-11 09:28 Minun 阅读(131) 评论(0) 推荐(0)
摘要:对于一个树 最多有2n 2个度 对于每一个点我们先认为它的度为1 这样对于剩下的度 每一个对应一个权值 跑完全背包就可求出在大小n 2的时的取得的最大值(初始为负无穷) 剩下的度的大小为相当于1到n 1,一定可以将n 2的容量装满 include define inf 0x3f3f3f3f defi 阅读全文
posted @ 2019-09-10 20:07 Minun 阅读(121) 评论(0) 推荐(0)
摘要:转换成1到n的约数和 写一下 F(1) = {1}; F(2) = {1, 2}; F(3) = {1, 3}; F(4) = {1, 2, 4}; F(5) = {1, 5}; F(6) = {1, 2, 3, 6}; 所以就是在求 (n/1) 1 + (n/2) 2+(n/3) 3+(n/4) 阅读全文
posted @ 2019-09-06 15:01 Minun 阅读(232) 评论(0) 推荐(0)