HDU 5234 Happy birthday 01背包
题目链接:
hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5234
bc:http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=585&pid=1003
题解:
由于数据比较小,所以可以转化为判定性问题,即:
dp[i][j][kk]表示走到i,j这一点时吃了kk重的蛋糕,转移方程只要考虑这一点的蛋糕吃和不吃两种情况(01背包)
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std; const int maxn=; bool dp[maxn][maxn][maxn];
int arr[maxn][maxn];
int n,m,kilo; void init(){
memset(dp,,sizeof(dp));
for(int i=;i<maxn;i++){
for(int j=;j<maxn;j++){
dp[i][j][]=;
}
}
} int main(){
while(scanf("%d%d%d",&n,&m,&kilo)==&&n){
init();
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
scanf("%d",&arr[i][j]);
}
} for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
for(int k=;k<=kilo;k++){
//(i,j)这点的蛋糕不吃
dp[i][j][k]=dp[i-][j][k]|dp[i][j-][k];
//(i,j)吃这点的蛋糕
if(k>=arr[i][j]){
dp[i][j][k]|=dp[i-][j][k-arr[i][j]];
dp[i][j][k]|=dp[i][j-][k-arr[i][j]];
}
}
}
} int ans=;
for(int i=kilo;i>=;i--){
if(dp[n][m][i]){
ans=i; break;
}
}
printf("%d\n",ans);
}
return ;
}
HDU 5234 Happy birthday 01背包的更多相关文章
- HDU 2602 Bone Collector(01背包裸题)
Bone Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- HDU 2546 饭卡(01背包裸题)
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- HDU 2602 - Bone Collector - [01背包模板题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 Many years ago , in Teddy’s hometown there was a ...
- hdu 1574 RP问题 01背包的变形
hdu 1574 RP问题 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1574 分析:01背包的变形. RP可能为负,所以这里分两种情况处理一下就好 ...
- HDU 2546 饭卡(01 背包)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546 思路:需要首先处理一下的的01背包,当饭卡余额大于等于5时,是什么都能买的,所以题目要饭卡余额最小, ...
- hdu 2602(经典01背包)
Bone Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- HDU 2602 Bone Collector --01背包
这种01背包的裸题,本来是不想写解题报告的.但是鉴于还没写过背包的解题报告.于是来一发. 这个真的是裸的01背包. 代码: #include <iostream> #include < ...
- HDU -2546饭卡(01背包+贪心)
这道题有个小小的坎,就是低于5块不能选,大于5块,可以任意选,所以就在初始条件判断一下剩余钱数,然后如果大于5的话,这时候就要用到贪心的思想,只要大于等于5,先找最大的那个,然后剩下的再去用背包去选择 ...
- hdu 2546 饭卡 01背包
先将前n-1个从小到大排序.对m-5进行01背包.然后答案就是m-dp[m-5]-a[n-1] 至于为什么最后减去最贵的菜品,而不是把最贵的菜品也放到01背包里呢, 由于假设能够把最贵菜品a[n-1] ...
随机推荐
- jquery购物车添加功能
<html> <head> <meta charset="UTF-8"> <title></title> <scr ...
- swiper 导航有多个,被点击的项居中显示。
<div class="swiper-container"> <div class="swiper-wrapper"> <div ...
- mongo数据集合属性中存在点号(.)
基本知识点: 1.似乎mongo3.6之前不允许插入带点(.)或美元符号($)的键,但是当我使用mongoimport工具导入包含点的JSON文件时,它工作正常. 2.在使用spring-data-m ...
- Flash的swf文件破解
1.准备好flash文件,xxx.swf(后缀为swf),将其重构swf文件为fla源文件. 2.asv软件(5以上版本)的操作 1.点击左上角 文件 --> 打开 --> 运行已准备好的 ...
- git如何到精通
git教程 目录 一.版本控制概要 1.1.什么是版本控制 1.2.常用术语 1.3.常见的版本控制器 1.4.版本控制分类 1.4.1.本地版本控制 1.4.2.集中版本控制 1.4.3.分布式 ...
- UCSC 工具链接
http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/
- 2016-2017-2 20155339《 java面向对象程序设计》实验四Android程序设计
2016-2017-2 20155339< java面向对象程序设计>实验四Android程序设计 实验内容 1.Android Stuidio的安装测试: 参考<Java和Andr ...
- bzoj1854 [Scoi2010]游戏 ([SCOI2010]连续攻击游戏)
bzoj1854 [Scoi2010]游戏 ([SCOI2010]连续攻击游戏) 据说正解是并查集???我不会 这不是一道匈♂牙利好题吗??? 一个装备的两个属性都向它连边,然后跑一遍匈♂牙利 注意: ...
- 基于ejabberd实现各个客户端消息同步
先上图再说(左侧是web端,右侧是ios端) 要实现上面的功能,如果所有设备都在线的话,那么carboncopy(xmpp xep-0280协议)这个模块是可以实现接收到的消 ...
- LumiSoft.Net 收发邮件
一:LumiSoft.Net简介 Lumisoft is a software development company specialised in mobile phones and tablets ...