题目链接:

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背包的更多相关文章

  1. HDU 2602 Bone Collector(01背包裸题)

    Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  2. HDU 2546 饭卡(01背包裸题)

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  3. HDU 2602 - Bone Collector - [01背包模板题]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 Many years ago , in Teddy’s hometown there was a ...

  4. hdu 1574 RP问题 01背包的变形

    hdu 1574 RP问题 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1574 分析:01背包的变形. RP可能为负,所以这里分两种情况处理一下就好 ...

  5. HDU 2546 饭卡(01 背包)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546 思路:需要首先处理一下的的01背包,当饭卡余额大于等于5时,是什么都能买的,所以题目要饭卡余额最小, ...

  6. hdu 2602(经典01背包)

    Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  7. HDU 2602 Bone Collector --01背包

    这种01背包的裸题,本来是不想写解题报告的.但是鉴于还没写过背包的解题报告.于是来一发. 这个真的是裸的01背包. 代码: #include <iostream> #include < ...

  8. HDU -2546饭卡(01背包+贪心)

    这道题有个小小的坎,就是低于5块不能选,大于5块,可以任意选,所以就在初始条件判断一下剩余钱数,然后如果大于5的话,这时候就要用到贪心的思想,只要大于等于5,先找最大的那个,然后剩下的再去用背包去选择 ...

  9. hdu 2546 饭卡 01背包

    先将前n-1个从小到大排序.对m-5进行01背包.然后答案就是m-dp[m-5]-a[n-1] 至于为什么最后减去最贵的菜品,而不是把最贵的菜品也放到01背包里呢, 由于假设能够把最贵菜品a[n-1] ...

随机推荐

  1. Node.js——fs模块(文件系统),创建、删除目录(文件),读取写入文件流

    /* 1. fs.stat 检测是文件还是目录(目录 文件是否存在) 2. fs.mkdir 创建目录 (创建之前先判断是否存在) 3. fs.writeFile 写入文件(文件不存在就创建,但不能创 ...

  2. work notes

    本喵,一个快乐的web开发肥宅程序媛,参与过手机端.电视TV端.电脑端的开发.工作之余,总结了一些经验[避坑指南]分享给大家- 1. webView内嵌h5页面时,如果内嵌的页面有出现手机自带键盘或者 ...

  3. 对大数据的批量导入MySQL数据库

    自己的库里有索引在用insert导入数据时会变慢很多 使用事务+批量导入 可以配置使用spring+mybatis整合的方式关闭自动提交事务(地址),选择批量导入每一百条导入使用list存储值传入到m ...

  4. 09-if判断语句

    https://www.liaoxuefeng.com/  廖雪峰的官方网站 hm_01_判断年龄.py 1 #!/usr/bin/env python3 # coding=utf-8 def mai ...

  5. 解决「matplotlib 图例中文乱码」问题

    在学习用 matplotlib 画图时遇到了中文显示乱码的问题,在网上找了很多需要修改配置的方法,个人还是喜欢在代码里修改. 解决方法如下: 在第2.3行代码中加上所示代码即可. import mat ...

  6. 准确率(accuracy),精确率(Precision),召回率(Recall)和综合评价指标(F1-Measure )----转

    原文:http://blog.csdn.net/t710smgtwoshima/article/details/8215037   Recall(召回率);Precision(准确率);F1-Meat ...

  7. springboot(eureka子项目)+idea+jsp 404问题

    我是这么解决的 对于单一项目,加入以下jar包即可 <!--前台页面的支持--> <dependency> <groupId>javax.servlet</g ...

  8. 20155308&20155316 2017-2018-1 《信息安全系统设计基础》实验三

    20155308&20155316 2017-2018-1 <信息安全系统设计基础>实验三 并发程序-1 学习使用Linux命令wc(1) 基于Linux Socket程序设计实现 ...

  9. day 14 元组

    1. 使用场景? # 列表list 数据类型相同, #rwx文件 100个人的名字, # 用字典 dict ['dɪkt] 很多信息描述1个人, # tuple [ˈtʌpəl] #只读文件 不能修改 ...

  10. string[]转换为int[]

    今天碰到一个问题,要把string[]转换为int[],但是又不想使用循环转换,找了好久最后找到了这种方法,特此记录下. string[] input = { "1", " ...