[HAOI2008]硬币购物 共有四种硬币,其面值分别为$c_1,c_2,c_3,c_4$ $n$次询问,每次给定每种硬币的个数$D_i$和付款金额$S$,问共有多少种付款方式 \(n≤10^3,S≤10^5\) 暴力做法 我们可以把问题看作做$n$次多重背包,用单调队列优化,最优的复杂度为$O(n ...
分类:
其他好文 时间:
2020-07-05 10:49:57
阅读次数:
75
http://poj.org/problem?id=3181 高精+背包 完全背包求方案数则只需dp[ j ] + = dp[ j - w[ i ] ]即可;任意一种背包方案计算都只需将max变为+; 这道题要注意,求方案数一般有很多,不mod,就自己看看数据是否超内存; dp[ i ]存放前18位 ...
分类:
其他好文 时间:
2020-07-05 00:49:16
阅读次数:
92
题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。 由于每摆上一个棋子,需要查看周围9个位置,导致搜索的复杂度直接爆炸(n*n个格子里选k个格子,并且还得满足条件) 因此需要预处理每一行的合 ...
分类:
其他好文 时间:
2020-07-05 00:38:17
阅读次数:
58
HDU 3092 题目大意 将一个数 \(s\) 写成很多数相加,求这些数的 \(lcm\) 最大 $\$ $\$ \(Solution\) 网上的题解我真是emm???直接复述一遍结论就离谱。这道题重点难道不是在发现这个结论吗?完全背包谁不会啊??忍不住吐槽了kkk 首先一定要手玩几个例子,比如 ...
分类:
其他好文 时间:
2020-07-04 22:36:37
阅读次数:
64
01背包 http://acm.hdu.edu.cn/showproblem.php?pid=2546 余额为体积; 01背包比较明显; 因为是>=5时才能消费,所以预留5的空间,计算出在余额为m-5的情况下,所能花费的最大价钱; 记住,因为只要>=5,不管菜多贵,都能买;所以我们希望5元时买的菜最 ...
分类:
其他好文 时间:
2020-07-04 21:01:00
阅读次数:
64
现在有个问题:已知N个箱子以及每个箱子重量,船只最大承载量是W,如何在T次运送之内运完箱子(不考虑空间因素,只要重量没超过都能放得下) 思路:要保证在T次之内送完箱子,换句话说就要要每次运送的货物的总重量达到或者最接近船只最大承载量(当然前提要保证最大承载量W大于(箱子总重量/T次)) 方法1:穷举 ...
分类:
其他好文 时间:
2020-07-04 19:13:14
阅读次数:
73
一 : 0 1 背包 设 f [ i ] [ j ] 表示 选了 i 个物品 容量 为 j 的背包,状态直接转移 0 - > V 枚举 和 V - > 0 枚举都可 for(int i=1;i<=n;i++){ for(int j=0;j<=V;j++){ if(w[i]>j)f[i][j]=f[i ...
分类:
其他好文 时间:
2020-07-03 21:01:43
阅读次数:
49
先来解释一下什么是线性dp 在求状态转移方程时,有明显的线性求取顺序 比如背包问题 这道题目我们先给数字编号 分析 dp问题的时间复杂度如何分析 一般是状态数量乘以转移的计算量(就是算每个状态需要的计算量) 本题大致就是500 * 500 1 #include <bits/stdc++.h> 2 u ...
分类:
其他好文 时间:
2020-07-03 10:31:36
阅读次数:
71
分组背包问题是物品有n组,每组里面有若干个物品,每组里最多选一个。 dp[i][j]只从前i组物品中选,且总体积不大于j的最大价值 状态计算:枚举第i组物品选哪个或不选 不选第i组物品,选第i组的第1个物品,选第i组的第2个物品,等等等等 二维做法 1 #include <bits/stdc++.h ...
分类:
其他好文 时间:
2020-07-02 18:12:21
阅读次数:
43
完全背包问题是每件物品有无限个 完全背包问题的状态表示和01背包问题一样 dp[i][j]表示只看前i个物品,总体积<= j的最大价值 状态计算: 按照第i个物品选了多少个来分 然后综合起来就是 k是枚举的第i个物品的个数,k = 0, 1, 2,... 三层循环的二维做法 1 #include < ...
分类:
其他好文 时间:
2020-07-02 13:46:43
阅读次数:
45