UVA10645完全背包
来源:互联网 发布:linux如何退出切换用户 编辑:程序博客网 时间:2024/06/05 09:07
题目链接:http://vjudge.net/contest/view.action?cid=45535#problem/Q
题目:给定一定时间,已知吃一种汉堡用时为m分钟,吃另一种汉堡用时为n分钟,求在保证剩余时间最少的情况下,吃的汉堡的最大数,如果时间有剩余,那么也要输出剩余的时间
题目可以看成是简单的完全背包,不过相当于两次,第一次是在有限时间t内,能装的最大时间,第二次是在有限时间内且剩余时间最少的情况下,能装的最大个数,
#include<stdio.h>#include<string.h>#define N 10005#include<algorithm>using namespace std;int dp[N];int w[5];int sum[N];int main(){ int m,n,t; while(scanf("%d%d%d",&m,&n,&t)!=EOF) { w[1]=m;w[2]=n; memset(sum,0,sizeof(sum)); memset(dp,0,sizeof(dp)); for(int i=1;i<=2;i++) { for(int j=w[i];j<=t;j++) { if(dp[j]<dp[j-w[i]]+w[i]) { dp[j]=dp[j-w[i]]+w[i]; sum[j]=sum[j-w[i]]+1; } else if(dp[j]==dp[j-w[i]]+w[i])//注意第一层的情况下,判断最优 sum[j]=max(sum[j],sum[j-w[i]]+1); } } if(dp[t]==t) printf("%d\n",sum[t]); else printf("%d %d\n",sum[t],t-dp[t]); } return 0;}
0 0
- UVA10645完全背包
- 完全背包
- 完全背包
- 完全背包
- 完全背包
- 完全背包
- 完全背包!!
- 完全背包
- 完全背包
- 完全背包
- 完全背包
- 完全背包
- 完全背包
- 完全背包
- 完全背包
- 完全背包
- 完全背包
- 完全背包
- java读取二进制文件传给nodejs保存
- 对部分REST API的理解
- android aapt使用小结
- IOS开发之自定义状态条
- Java 连接 Access
- UVA10645完全背包
- 基础总结篇之二:Activity的四种launchMode
- jade处理文本
- 网口-IP-MAC绑定办公环境上网方案
- HDU 1016Prime Ring Problem(dfs)
- Linux下获取帮助
- JRebel 热部署
- mac os x上virtualbox 不能启动 guest os XP
- poj2492 A Bug's Life 种类并查集