
背包dp
文章平均质量分 52
Kylehz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ZOJ 1100 Mondriaan's Dream
/*这至少是一道中等难度的动态规划题目,首先用面积的奇偶性,当高度和宽度都为奇数时显然答案为0;其次,把每一列的砖块压缩为二进制编码,搜索上一列到当前列的状态转化是否能够达到,接着DP;对于每一个位置,我们有三种放置方法:1.水平放置2.竖直放置3.不放置4. n为当行的位置,初始化n, from, to都为0;对应以上三种放置方法,from, to的调整为转载 2014-04-19 11:12:46 · 465 阅读 · 0 评论 -
HDU 1159 Common Subsequence (求两个串的最长公共子序列 dp)
/*78ms题意:求两个串的最长公共子序列代码中的dp[i][j]表示0到i-1跟0到j-1的最长公共子序列*/#include#include#include#includeusing namespace std;int dp[1001][1001];int main(){ char a[1001],b[1001]; while(cin>>a>>b)原创 2014-04-04 13:58:00 · 516 阅读 · 0 评论 -
背包9讲
dd大牛的《背包九讲》 P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背转载 2014-03-25 09:45:06 · 433 阅读 · 0 评论 -
ZOJ 2042 Divisibility (DP)
//dp[i][j]:前i个数的余数j是否存在,存在为1,不存在为0#include#include#include#include#include#include#include#includeusing namespace std;int dp[10001][101];int main(){ int t,a[10001]; cin>>t; whi原创 2014-04-08 17:03:19 · 435 阅读 · 0 评论 -
最大子矩阵和
#include#include#include#include#include#include#include#includeusing namespace std;int n,sum[110];int dp()//一维dp{ int f[110],ma=0,i; f[0]=sum[0]; for(i=1;i<n;i++) {原创 2014-04-08 13:26:19 · 499 阅读 · 0 评论