
背包
新笑雨
这个作者很懒,什么都没留下…
展开
-
codeforces 1280D
题目链接 题意 给一棵树,树上每个点有两个权值,分别是wi,bi 要求将树分成m个联通块,要求最多能有几个联通块内的∑wi>∑bi\sum wi \gt \sum bi∑wi>∑bi 数据范围 多组数据,组数<=100 n,m<=3000 ∑n≤1e5\sum n\le 1e5∑n≤1e5 解法 树形背包 首先有一个简单的想法:f[i][j][k]表示第i个点的子树,被分成...原创 2020-01-11 15:59:53 · 204 阅读 · 0 评论 -
codeforces 1111D
题目链接 题意 给一个长度为n(n≤2e5)n(n\le 2e5)n(n≤2e5)的字符串,字符集为大写字母和小写字母,有q次询问.每次指定两个位置,要求将所有和这两个位置的字母相同的字母都放在字符串的同一半,然后其它每种字母也要放在字符串的同一半.对每组询问,回答合法方案数mod 1e9+7mod~1e9+7mod 1e9+7. 解法 首先考虑对问题的转化,将哪些字母放在字符...原创 2020-01-10 19:39:47 · 153 阅读 · 0 评论 -
多重背包的优化方法
orz zrf 首先,经典的多重背包解法,是把一个物品分成该物品的总数份,然后做01背包 第一个优化方法是把一个物品呢分成O(log(该物品的总数份))O(log(该物品的总数份))O(log(该物品的总数份)),举个例子: 如果物品有2n−12^n-12n−1个,就分成20,21,...,2n−12^0,2^1,...,2^{n-1}20,21,...,2n−1,这样.如果不是2n−12^n-1...原创 2019-12-27 17:31:59 · 199 阅读 · 0 评论 -
一道bitset优化背包的练习题
有 nnn 种物品,第 i 种物品有 cicici 个,体积为 vivivi。 给定整数集合 SSS,从这 n 种物品中选出 k(k∈S)k(k ∈ S )k(k∈S)种物品,每种物品选任意正整数 个,问可以得到哪些小于 LLL 的总体积值。 所有输入数据小于等于2000 首先f[i][j]f[i][j]f[i][j]表示选了jjj种物品,能否获得iii的体积,然后可以bitsetbitsetbi...原创 2019-12-20 21:14:36 · 310 阅读 · 0 评论