P1832 A+B Problem(再升级) 题面描述 给定一个正整数n,求将其分解成若干个素数之和的方案总数。 题解 我们可以考虑背包DP实现 背包DP方案数板子题 f[ i ] = f[ i ] + f[ i - a[j] ] f[ j ] 表示数字 j 用若干个素数表示的方案总数 注意 1.线 ...
分类:
其他好文 时间:
2019-12-02 19:36:32
阅读次数:
125
题目描述 Matrix67要在下个月交给老师n篇论文,论文的内容可以从m个课题中选择。由于课题数有限,Matrix67不得不重复选择一些课题。完成不同课题的论文所花的时间不同。具体地说,对于某个课题i,若Matrix67计划一共写x篇论文,则完成该课题的论文总共需要花费Ai x^Bi个单位时间(系数 ...
分类:
其他好文 时间:
2019-11-21 09:16:49
阅读次数:
67
luogu3698小Q的棋盘 题意: 求从树的根节点出发,走n步能经过的最多的点的数量(可以重复走点,但是重复走的步数会记录) 树形背包dp: 对于从0出发,我们可以这样走: 1、选一条岔路一直走下去 2、选一条岔路走后回到0点,再选一条岔路走下去 对应的dp转移: f[0][u][j]代表从u出发 ...
分类:
其他好文 时间:
2019-11-10 21:22:30
阅读次数:
78
题意: 输入两个正整数N和M(N<=10000,M<=10000),接着输入N个正整数。输出最小的序列满足序列和为M。 代码: #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int a[10007];in ...
分类:
其他好文 时间:
2019-11-03 11:02:10
阅读次数:
100
繁繁的数字 背包DP 问一个数$n$有多少种二进制分解方案数 $n\le 10^5$ 如7有7=4+2+1=4+1+1+1=2+2+2+1=2+2+1+1+1=2+1+1+1+1+1=1+1+1+1+1+1+1,共6种方案 一眼完全背包,将$2^0,2^1\cdots$等看成$log_n$个物品,每 ...
分类:
其他好文 时间:
2019-11-02 13:52:42
阅读次数:
75
第$K$优解这类问题可在$DP$过程中通过添维解决。归并出当前前$K$大的解。 ...
分类:
其他好文 时间:
2019-10-27 18:56:37
阅读次数:
62
思路: 贪心 + dp 首先贪心按身长加手长排序, 也就是让最难出去的先出去 但也有可能有人手短身子长, 那他奉献自己可能更优 所以在加个背包dp 代码: cpp include include include include using namespace std; const int N = 2 ...
分类:
其他好文 时间:
2019-10-25 20:09:17
阅读次数:
71
大神题。 每个部分分的算法都值得思考。 50pts:状压dp 把节点按深度排序,一定是深度连续的几段,即对应的差分数列只有0/1,在差分数列上进行状压dp,在中间加0,末尾添1。 最外层枚举节点编号保证顺序。 70pts:背包dp 设f[i][j]为含有i个点,深度为j的树的方案数。用带限制的完全背 ...
分类:
其他好文 时间:
2019-10-15 19:26:46
阅读次数:
71
https://www.luogu.org/problem/P5196 开始那道题会觉得 计数很棘手 ,思考一番 这个背包dp式子很好得出 if(dp[j]) dp[j+len[i]]+=dp[j]; 但是这是 没有最后一个单词的前提下才行 那怎么办? (不会就dp) 很有用的 f[col[i]]+ ...
分类:
其他好文 时间:
2019-10-11 20:30:23
阅读次数:
67
题意: 有体积 $V$ 的背包,对于一个物品 $i$ ,有体积 $v[i]$ ,求保证把背包装满的方案数,保证合法。 解法: 背包dp cpp include include using namespace std; int main() { int n,m,w[1005],f[10005]; ci ...
分类:
其他好文 时间:
2019-10-10 23:07:35
阅读次数:
160