动态规划
文章平均质量分 58
DASEason
https://github.com/qq547276542
展开
-
多重背包 (n种物品,每种m个)
const int MAXV = 1 << 9; int d[MAXV],v,w; int m,n,V; //背包大小为V,n种物品,每种物品m个 void ZeroOnePack( int* f, int C, int W) { //01背包 int v; for( v = V; v >= C; v --) f[v] = max( f[v], f[v - C]原创 2015-08-19 16:29:10 · 3494 阅读 · 0 评论 -
整数划分模板
//模板 long long dp[1005][1005]; long long f(int n,int m){ //返回和为n,每个数不超过m的划分个数 n,m都不能为0 if(dp[n][m]) return dp[n][m]; if(n==1||m==1) return dp[n][m]=1; if(m>n) return dp原创 2015-08-20 10:08:11 · 1915 阅读 · 0 评论 -
几个基础数位DP (hdu 2089,hdu 3555 ,uestc 1307 windy 数)
HDU 2089 不要62 http://acm.hdu.edu.cn/showproblem.php?pid=2089 不能出现4,或者相邻的62,这题可以暴力打表解决 具体的在代码里都有解释 #include #include #include #include #include #include #define N 55 #define inf转载 2015-08-19 16:30:09 · 1829 阅读 · 0 评论 -
动态规划解TSP问题(状态压缩dp)
动态规划解TSP问题(状态压缩dp)TSP问题简述 给定图上若干个点,以及他们之间的距离,求一条距离和最小的回路,使得该回路正好经过每个点一次。TSP也叫旅行商问题、货郎担问题。。。状态转移方程 用 V’ 表示一个点的集合,假设从顶点 s 出发, d ( i , V’ ) 表示当前到达顶点 i,经过 V’ 集合中所有顶点一次的最小花费。1.当 V’ 为仅包含起点的集合,也就是:d ( s , {原创 2017-09-04 15:38:03 · 12747 阅读 · 3 评论 -
Codeforces Round #551 (Div. 2) D. Serval and Rooted Tree (树形dp)
https://codeforces.com/contest/1153/problem/D 思路: 用dp[i]表示,结点i最少要有dp[i]个最大的结点肯定被忽略掉(因为题目要求最大化,因此我们希望被忽略掉的最大点尽可能少,所以dp表示的是“最少”的个数)。那么对于整个树,根节点的dp[1]即为整颗树最少要丢弃的结点个数,因此最终答案为k-dp[1]+1(因为我们要选中一个答案,所以少丢弃一个...原创 2019-04-14 22:37:02 · 362 阅读 · 2 评论