TOJ3232TOJ礼品兑换
来源:互联网 发布:java游戏制作 编辑:程序博客网 时间:2024/06/02 22:09
3232: TOJ礼品兑换
时间限制(普通/Java):1000MS/3000MS 内存限制:65536KByte
总提交: 136 测试通过:91
总提交: 136 测试通过:91
描述
近期crq老师为了提高各个学生对ACM的兴趣,在TOJ上增加了积分制度和礼品兑换功能, TOJ的积分是来之不易的,固然同学们都想用同一积分换取最大价值的礼品,某同学用了M的积分换取了一些礼品。 请问:他用M的积分最多能换取多少价值的礼品呢? (积分M一定要使用完)
输入
输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数M和N(1<=M<=1000,1<=N<=100),分别表示换取的总积分和礼品的种类,然后是N行数据,每行包含3个数p,h和c(1<=p<=100,0<=h<=200,1<=c<=1000),分别表示每种礼品的价格、对应种类礼品的剩余数目以及每类礼品的消耗的积分。
输出
对于每组测试数据,如果M能使用完请输出"The maximum value is X." ,否则输出"This is impossible.".你可以假设同一类物品能多次换取。每个实例的输出占一行。
样例输入
3700 310 2 10065 5 50024 10 200273 457 190 5351 66 38392 65 9161 126 364273 257 190 5361 126 364
样例输出
The maximum value is 89.The maximum value is 276.This is impossible.
题目来源
TOJ
#include <stdio.h>#include <string.h>int main(){int n,i,j,l,m,t,q[1005],p,h,c;scanf("%d",&t);while(t--){memset(q,0,sizeof(q));scanf("%d %d",&m,&n);while(n--){scanf("%d %d %d",&p,&h,&c);for(i=0;i<h;i++){for(j=m;j>=c;j--){if(q[c]<p)q[c]=p;if(q[j-c]&&q[j-c]+p>q[j]){q[j]=q[j-c]+p;}}}}if(q[m])printf("The maximum value is %d.\n",q[m]);elseprintf("This is impossible.\n");}}
0 0
- TOJ3232TOJ礼品兑换
- 交通银行信用卡积分兑换商城礼品列表
- 交通银行信用卡积分兑换礼品方法(三种)
- 中国电信某接口可破解某省所有用户服务密码姓名信息并可通过服务密码免费兑换礼品变现
- 礼品市场前景
- 年会礼品
- 刚买的礼品
- 奥运礼品“买即送”
- 点击领取礼品
- 亚马逊礼品卡
- 送给圣诞夜的礼品
- 高档陶瓷礼品
- 积分兑换
- 积分兑换
- 积分兑换
- 兑换积分
- 积分兑换
- 积分兑换
- Android开发短信备份小例子
- 关于“卷积”的通俗解释
- 游戏服务器之服务器对象
- Kinect for Windows SDK v2.0 开发笔记 (七)语音识别(上)
- jms与spring的整合,基于maven
- TOJ3232TOJ礼品兑换
- HDU Today(三种写法)(最短路)
- 冒泡排序
- 错排公式
- shell入门
- 小学生算术能力测试系统
- HDU4707:Pet(DFS)
- The connection to adb is down, and a severe error has occured.
- Map根据value排序