随笔分类 - 动态规划 - 背包问题
摘要:神仙容斥+DP可还行. code: #include <cstdio> #include <cmath> #include <vector> #include <cstring> #include <algorithm> #define N 1007 #define ll long long #de
        阅读全文
                
摘要:本来以为这道题会非常难调,但是没想到调了不到 5 分钟就 A 了. 由于基于多项式的运算都可以方便地进行封装,所以细节就不是很多(或者说几乎没有细节) 题意:给定一棵树,每个点有点权,求对于所有大小为 $m$ 的独立集的点权之积的和. 数据范围:$n,m \leqslant 8 \times 10^
        阅读全文
                
摘要:比较友好的背包+期望题. 刚开始没特判概率为 0 的情况,WA 了半天. 总是还是挺简单的吧,只要会期望的线性性就行. code: #include <bits/stdc++.h> #define N 207 #define M 203 #define mod 998244353 #define l
        阅读全文
                
摘要:由于有重复数字,所以这个问题就很不好处理. 考虑我们让 $i$ 为根,这个点对答案的贡献就是以 $i$ 为根,由 $val[i] \leqslant val[j]$ 的 $K$ 个点组成的连通块个数. 但是我们会发现如果直接求的话会算重一部分. 如果 $val[j]>val[i]$ 的话,将这个点设
        阅读全文
                
摘要:这种多线程问题可以采用一维枚举,另一位用 dp 求解最优解来实现. 这道题和那个 ZJOI 的食堂排队的题挺像的. code: #include <bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f #define N 508000 
        阅读全文
                
摘要:code: #include <cstdio> #include <cstring> #include <algorithm> #define ls x<<1 #define rs x<<1|1 #define N 2105 #define ll long long #define setIO(s)
        阅读全文
                
摘要:数字很多,但是由于总和不超过 $2\times 10^6$,所以最多只能凑出来 $2\times 10^6$ 种算术和. 由于这里是对算是和取异或,所以我们只需关注每种算术和出现次数的奇偶. 由于奇奇 $\Rightarrow$ 偶,奇偶 $\Rightarrow$ 奇,偶偶 $\Rightarro
        阅读全文
                
摘要:显然01分数规划转成二分答案+判断是否大于 0 的问题. 这个题有一个坑点:不止根节点的父亲可能是 0 号节点(0号节点也是不能省略的) code: #include <cstdio> #include <string> #include <cstring> #include <iostream> 
        阅读全文
                
摘要:这个题有一个结论:如果用 $x$ 个点能凑出的给点个数在 $[L,R]$ 之间,那么任意 $v\in [L,R]$ 一定能取到. 知道这个结论之后跑一个树形背包就行了,注意在跑背包的时候上界一定要限制好,要不然时间复杂度会多一个 $O(n)$ 的. code: #include <cstdio> #
        阅读全文
                
摘要:Description 给定一颗 N 个点的树,树上的每个点或者是红色,或者是黑色。 每个单位时间内,你可以任选两个点,交换它们的颜色。 出于某种恶趣味,你希望用最少的时间调整结点的颜色,使得对于每个点,离它最近的黑色点与它的距离不超过 x。 Input 输入的第一行包含整数 N 和 x(1 <= 
        阅读全文
                
摘要:题意:给定 $n$ 个括号序,让你从中选取一些括号序按照任意顺序拼接,最终生成一个合法的括号序列,求这个合法序列长度最大值. 题解:假设括号序列相对顺序固定,而我们要做的只是判断选还是不选的话可以转化为一个简单的背包问题: 令 $f[i][j]$ 表示考虑前 $i$ 个括号序,左括号比右括号多 $j
        阅读全文
                
摘要:Description 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi。我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大)。 但是现在有个问题:软件之间存在依赖关系,即软件i只有在安装了软件j(包括软件j的直接或间接
        阅读全文
                
摘要:题目链接 读完题后,我们发现如下性质: 在合法且和不超过 $m$ 的情况下,如果 $a_{i}$ 出现,则 $a_{i}$ 的倍数也必出现. 所以如果合法,只要对所有数两两结合一次就能得到所有 $a_{i}$ 能凑出的不超过 $m$ 的数,且没有多余的. 那么做法就出来了: 只需对 $a_{1}..
        阅读全文
                
摘要:题目链接 如果一个数能被比它小的数表示出来,那么这个数就不用选 跑一遍完全背包即可
        阅读全文
                
摘要:Description 尽管奶牛们天生谨慎,她们仍然在住房抵押信贷市场中受到打击,现在她们开始着手于股市。 Bessie很有先见之明,她不仅知道今天S (2 <= S <= 50)只股票的价格,还知道接下来一共D(2 <= D <= 10)天的(包括今天)。 给定一个D天的股票价格矩阵(1 <= 价
        阅读全文
                
摘要:Description ftiasch 有 N 个物品, 体积分别是 W1, W2, ..., WN。 由于她的疏忽, 第 i 个物品丢失了。 “要使用剩下的 N - 1 物品装满容积为 x 的背包,有几种方法呢?” -- 这是经典的问题了。她把答案记为 Count(i, x) ,想要得到所有1 <
        阅读全文
                

 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号