度度熊最期待每天的午饭时光,因为早饭菜品清淡,晚饭减肥不敢吃太多(胖纸的忧伤T.T)。

百度食堂的午餐超级丰富,祖国各大菜系应有尽有,度度熊在每个窗口都有爱吃的菜品,而且他还为喜爱的菜品打了分,吃货的情怀呀(>.<)。

但是,好吃的饭菜总是很贵,每天的午饭预算有限,请帮度度熊算一算,怎样打饭才能买到的最好吃的饭菜?(不超过预算、不重样、午餐等分最高的情况下,选择菜品序号加和最小,加和相等时字典序最小的组合)

Input

第一行一个整数T,表示T组数据。 每组测试数据将以如下格式从标准输入读入:

B

N

score_1 cost_1

score_2 cost_2

:

score_N cost_N

第一行,正整数B(0 <= B <= 1000),代表午餐的预算。

第二行,正整数N (0 <= N <= 100),代表午餐可选的菜品数量

从第三行到第 (N + 2) 行,每行两个正整数,以空格分隔,score_i表示菜品的得分,cost_i表示菜品的价格(0 <= score_i, cost_i <= 100)。

Output

对于每组数据,输出两行: 第一行输出:"Case #i:"。i代表第i组测试数据。 第二行输出菜品的总得分和总花费,以空格分隔。 第三行输出所选菜品的序号,菜品序号从1开始,以空格分隔。

Sample Input
2
29
6
9 10
3 4
6 5
7 20
10 9
15 11
0
2
2 23
10 12

Sample Output
Case #1:34 292 3 5 6Case #2:0 0

Case #1:
34 29
2 3 5 6
Case #2:
0 0

方法:动态规划(01背包)
#include<iostream>
#include<cstring>
#include <vector>
#include <map>
#include<algorithm>
using namespace std;
const int MAXN = 200002;
int need[MAXN];
int value[MAXN];
int dp[MAXN];int dpfunc(int* need, int* value, int n, int V)
{map<int, vector<int> > seq_data;memset(dp, 0, sizeof(dp));for (int i = 1; i <= n; i++){for (int j = V; j >= need[i]; j--) {if (dp[j - need[i]] + value[i] > dp[j]) {dp[j] = dp[j - need[i]] + value[i];vector<int> seq = seq_data[j - need[i]];seq.push_back(i);seq_data[j] = seq;}}}vector<int> seq1 = seq_data[V];int yusuan = 0;for (auto itr : seq1) {yusuan += need[itr];}cout << dp[V] << " " << yusuan << endl;vector<int>& seq = seq_data[yusuan];int seq_size = seq.size();for (auto itr : seq) {cout << itr;seq_size--;if (0 == seq_size) {cout << endl;}elsecout << " ";}return 0;
}int main()
{int n, V;int time;cin >> time;for (int t = 1; t <= time; ++t) {cin >> V >> n;memset(need, 0, sizeof(need));memset(value, 0, sizeof(value));for (int i = 1; i <= n; i++){cin >> value[i] >> need[i];}printf("Case #%d:\n", t);dpfunc(need, value, n, V);}return 0;
}

Case #1:34 292 3 5 6Case #2:0 0

百度之星 度度熊的午饭时光相关推荐

  1. 百度之星度度熊与邪恶大魔王

    心酸心累  通不过 package me;import java.util.Scanner;public class Main {static int[] k;static int[] p;stati ...

  2. 2018百度之星度度熊学队列

    使用stl中的list就可以了,不知道为啥用reverse会wa,只能是一个个的插入list了,索幸没有超时. 代码: #include <iostream> #include <l ...

  3. 百度之星du熊学斐波那契I-C++实现

    最近看到百度之星2012-12-11号的竞赛题目,觉得好玩,实现了C++版的.代码问题,欢迎指正. 题目如下. http://star.baidu.com/index.php?r=home/detai ...

  4. 2017百度之星程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】...

    度度熊保护村庄 Accepts: 13 Submissions: 488 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3276 ...

  5. 2017百度之星程序设计大赛-资格赛

    ACM模版 忙里偷闲的写了几道题,这两天好忙啊--只过一道题就能通过资格赛,所以并没有什么签到题--但是的确有的题被我想难了~~~ 1002-度度熊的王国战略 >>>并查集<& ...

  6. 【2012百度之星/初赛上】D:轮子上的度度熊

    描述:百度楼下有一块很大很大的广场.广场上有很多轮滑爱好者,每天轮滑爱好者们都会在广场上做一种叫做平地花式轮滑的表演.度度熊也想像他们一样在轮上飞舞,所以也天天和他们练习. 因为度度熊的天赋,一下就学 ...

  7. 度度熊与邪恶大魔王 (百度之星之资格赛)

    度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来.  邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力.  度度熊一共拥有m种攻击方式,第i种攻击方式,需要消耗k[i]的 ...

  8. 2017百度之星1003度度熊与邪恶大魔王

    问题描述: 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式,第i种攻击方式,需要消耗k ...

  9. 【2012百度之星/初赛下】C:度度熊的礼物

    描述:度度熊拥有一个自己的Baidu空间,度度熊时不时会给空间朋友赠送礼物,以增加度度熊与朋友之间的友谊值.度度熊在偶然的机会下得到了两种超级礼物,于是决定给每位朋友赠送一件超级礼物.不同类型的朋友在 ...

  10. 【2012百度之星/初赛下】A:度度熊就是要刷排名第一

    描述:一天度度熊在Baidu游戏大厅中发现了一个隐藏的神奇游戏,叫做"度度熊的逆袭".度度熊很好奇到底是什么情况,于是就进入了游戏.这个游戏很神奇,游戏会给出n个数Ai,度度熊可以 ...

最新文章

  1. UVALive6428 A+B【扩展欧几里得算法+GCD】
  2. IExtensibleObjectExtensibleHttpApplication的性能问题
  3. CRMEB移动端前端目录结构
  4. java 会话跟踪技术_JavaEE基础(04):会话跟踪技术,Session和Cookie详解
  5. 动态规划-01背包问题详解
  6. 【模板】 线段树(部分功能)
  7. Java HashMap工作原理及实现
  8. java asm 全称,java ASM
  9. 支付宝H5支付,ISV权限不足
  10. android ios 在线图标生成器
  11. 我们为什么不画高保真原型图
  12. android网络编程-socket基础
  13. CSDN20181218博客黑板报
  14. Ph P Manual
  15. 经常逛Github的人才知道的开源框架
  16. 怎么把exe转成手机的可执行文件
  17. “大多数人,都死在了 30 岁”
  18. Class-Aware Generative Adversarial Transformers for Medical Image Segmentation-用于医学图像分割的生成对抗网络
  19. Python 6 循环break,continu语句pass,else
  20. Nand-FLASH和eMMC内存上的block有多大容量?

热门文章

  1. 关于ADS-Matlab联合仿真ADS.RunSimulation()报错的解决方案
  2. 发票上的计算机字体,发票代码和发票号码是什么字体
  3. NLP数据标注常用工具汇总
  4. pyspider爬取tripadvisor
  5. 将keras的模型封装成可转换为tensorlow的.pb格式,并生成.pbtxt文件
  6. 微信公众号开发——java后台开发(一)
  7. 薛定谔Maestro--LigPrep 准备配体
  8. 修复APP的BUG,热修复的知识点和大厂的相关资料汇总
  9. 荣耀6 android 7.0,依旧荣耀--荣耀6 升级到 荣耀7 智能手机
  10. AllenNLP2.2.0:入门篇