
动态规划
文章平均质量分 77
weiwanshu
这个作者很懒,什么都没留下…
展开
-
poj 1163/3176 数字三角形【简单DP】
#include#includeint max( int i, int j){ return i > j ? i : j;}int main(void){ int n; int a[405][405]; int d[405][405]; int i, j; scanf("%d", &n); for( i = 1; i <= n; i++) for( j = 1;原创 2015-05-20 21:03:12 · 465 阅读 · 0 评论 -
POJ 3628 bookshelf2【0-1背包】
一道比较简单的0-1背包题,我理解题意花了一些时间= =。。。。求奶牛高度的和与规定值的最小差值。。。所以把循环上限改成所有奶牛高度的总和就可以了#include#includeint max( int a, int b){ return a > b? a : b;}int main(void){ int n, b; int i, j, height[2005], ans原创 2015-05-27 17:51:54 · 471 阅读 · 0 评论 -
POJ 3624 【0-1背包】
0-1背包最基本的入门题,做得特别开心#include#includeint max( int a, int b){ return a > b? a : b;}int main(void){ int i, j; int desire, weight; int dp[100005]; int n, m; memset( dp, 0, sizeof(dp)); scanf("原创 2015-05-27 16:24:37 · 561 阅读 · 0 评论 -
POJ 2063【完全背包】
这道题就是需要每年都进行一次动态规划,然后直接套完全背包即可因为本金有可能很大,所以这里面有一个简易的状态压缩,因为本金和价格都是的1000倍数,可以将其都除以1000;#include#includeint max( int a, int b){return a > b ? a : b;}int main(void){ int t, j, i, y, num, basic,原创 2015-05-27 20:06:54 · 285 阅读 · 0 评论 -
POJ 1276 Time Machine【多重背包】
这个多重背包问题我单纯地把它转化成了0-1背包问题,然后列出状态转移方程 dp[i][j] = max{ dp[ i-1][ j - k * V[i]] + k , dp[ i-1][ j-1] }这样看起来是需要三重循环哦。。开心的列了出来【图样图森破,简直拿衣服】DP部分的代码写成了这样for( i = 1; i <= n; i++){ for( j = N; j >=原创 2015-05-25 16:51:18 · 282 阅读 · 0 评论 -
背包九讲的读书笔记
我在做POJ 1276 的时候讨论区都在感谢背包九讲,虽然到最后AC我都没有用到,不过我下载下来准备学习一番。因为我觉得背包我好像懂了但其实没懂,好像没懂吧但又真的没懂 = =。。。0-1背包只会用贪心。。其他背包状态转移方程会列的不会写,不会列的更不会写(为什么写这么多废话 = =)。本文基本上是背包九讲里的原文各种节选和化用,注里是我的一些理解。【第一讲】 0-1背包1、简述题意 有原创 2015-05-25 18:04:19 · 381 阅读 · 0 评论 -
POJ 1384 【完全背包】
这道题花了我好长时间,因为莫名其妙的问题WA,一直到最后AC都没有懂我当初除了初始化太小以外还出了什么问题AC代码#include#includeint min( int a, int b){return a < b ? a : b;}int dp[200005], weight, value;int main(void){ int t, j, i, empty, full,原创 2015-05-27 19:38:29 · 354 阅读 · 0 评论 -
POJ 2081 Recaman's Sequence
很简单题,直接暴力运算。前人们都说这道题是简单DP,比较有道理不过我觉得这道题好像模拟以下计算过程就完事了,不过想起来DP也是在模拟计算过程。。。结果我在网上也没查到模拟法的定义这道题比较有意思的是数组范围,超~~~~大,本地根本无法通过,不过OJ上可以#include#include#define max 10000000#define N 500002int a[N];c原创 2015-05-23 12:05:56 · 409 阅读 · 0 评论