博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 3496 二维费用的01背包
阅读量:4979 次
发布时间:2019-06-12

本文共 1258 字,大约阅读时间需要 4 分钟。

算是比较简单的二维费用背包了吧,注意在某一维上要求“装满”。

另外:对于多维费用的背包,最内层的循环可以逆着写,想一想,为什么。

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 7 const int INF = -99999999; 8 const int N = 101; 9 const int L = 1001;10 int dp[N][L];11 int n, m, l;12 13 void init()14 {15 memset( dp, -1, sizeof(dp) );16 for ( int j = 0; j < L; j++ )17 {18 dp[0][j] = 0;19 }20 }21 22 int main ()23 {24 int t;25 scanf("%d", &t);26 while ( t-- )27 {28 scanf("%d%d%d", &n, &m, &l);29 init();30 for ( int i = 1; i <= n; i++ )31 {32 int time, value;33 scanf("%d%d", &time, &value);34 for ( int j = m; j > 0; j-- )35 {36 for ( int k = l; k >= time; k-- )37 {38 if ( dp[j - 1][k - time] != -1 )39 {40 dp[j][k] = max( dp[j][k], dp[j - 1][k - time] + value );41 }42 }43 }44 }45 int ans = dp[m][l] == -1 ? 0 : dp[m][l];46 printf("%d\n", ans);47 }48 return 0;49 }

 

转载于:https://www.cnblogs.com/huoxiayu/p/4649338.html

你可能感兴趣的文章
even flow
查看>>
.net core 15
查看>>
Android屏幕图标尺寸规范
查看>>
《锦绣蓝图—怎样规划令人流连忘返的网站》读后感
查看>>
软件工程第一次作业
查看>>
[詹兴致矩阵论习题参考解答]习题2.2
查看>>
设计模式的征途—2.简单工厂(Simple Factory)模式
查看>>
通过关闭 UseDNS和GSSAPIAuthentication选项加速 SSH登录
查看>>
Gitlab安装与备份恢复
查看>>
Docker(开课吧笔记)
查看>>
颜色直方图
查看>>
Android反编译与防止反编译
查看>>
读WP8开发新书,送Windows Phone 8开发书籍
查看>>
ceph crush算法和crushmap浅析
查看>>
软件工程第一次课堂作业
查看>>
团体程序设计天梯赛-练习集-L1-031. 到底是不是太胖了
查看>>
xml转Map,对象,Map转xml,inputs tram 转xml 字符串的工具类方法
查看>>
好程序员Web前端分享程序的三大结构(二)while循环
查看>>
IntersectionObserver实现图片懒加载
查看>>
Zend Studio 12 安装及破解方法
查看>>