HDU 6083 度度熊的午饭时光(01背包+记录路径)

时间:2023-02-16 15:54:35

http://acm.hdu.edu.cn/showproblem.php?pid=6083

题意:

HDU 6083 度度熊的午饭时光(01背包+记录路径)

思路:

01背包+路径记录。

题目有点坑,我一开始逆序枚举菜品,然后一直WA,可能这样的话路径记录会有点问题。

 #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<sstream>
#include<vector>
#include<stack>
#include<queue>
#include<cmath>
#include<map>
#include<set>
using namespace std;
typedef long long ll;
typedef pair<int,ll> pll;
const int INF = 0x3f3f3f3f;
const int maxn=+; int n, m;
int val[],w[];
int d[];
int path[][];
vector<int> ans; int main()
{
//freopen("in.txt","r",stdin);
int kase=;
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
scanf("%d",&m);
for(int i=;i<=m;i++) scanf("%d%d",&val[i],&w[i]);
memset(d,,sizeof(d));
memset(path,,sizeof(path)); for(int i=;i<=m;i++)
{
for(int j=n;j>=w[i];j--)
{
if(d[j-w[i]]+val[i]>d[j])
{
d[j]=d[j-w[i]]+val[i];
path[i][j]=;
}
}
}
printf("Case #%d:\n",++kase);
int sum=;
ans.clear();
for(int i=m,j=n;i>= && j>=;i--)
{
if(path[i][j])
{
ans.push_back(i);
j-=w[i];
sum+=w[i];
}
}
printf("%d %d\n",d[n],sum);
sort(ans.begin(),ans.end());
int sz=ans.size();
for(int i=;i<sz;i++)
{
printf("%d%c",ans[i],i==sz-?'\n':' ');
}
}
return ;
}

HDU 6083 度度熊的午饭时光(01背包+记录路径)的更多相关文章

  1. 百度之星资格赛 1004 度度熊的午饭时光(01背包&plus;最小序号和&plus;字典序&plus;有bug)

    分析 首先声明一下,我的代码有漏洞的,求大神给个正确代码 思路如下: 首先做一遍01背包记录路径并求出最大总分,令path[i][j]表示第i个物品包含在dp[j]的求值过程中.再逆序枚举money, ...

  2. UVA624&lpar;01背包记录路径&rpar;

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  3. 01背包记录路径 (例题 L3-001 凑零钱 &lpar;30分&rpar;)

    题意: 就是找出来一个字典序最小的硬币集合,且这个硬币集合里面所有硬币的值的和等于题目中的M 题解: 01背包加一下记录路径,如果1硬币不止一个,那我们也不采用多重背包的方式,把每一个1硬币当成一个独 ...

  4. HDU - 6082 度度熊与邪恶大魔王(背包变式)

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

  5. 牛客网暑期ACM多校训练营(第三场) A PACM Team 01背包 记录路径

    链接:https://www.nowcoder.com/acm/contest/141/A来源:牛客网 Eddy was a contestant participating in ACM ICPC ...

  6. UVA 624&lpar;01背包记录路径&rpar;

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  7. Atcoder Beginner Contest145E(01背包记录路径)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int a[3007],b[3007];int ...

  8. hdu 2126 Buy the souvenirs 二维01背包方案总数

    Buy the souvenirs Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  9. Codeforces Gym-102219 2019 ICPC Malaysia National E&period; Optimal Slots&lpar;01背包&plus;输出路径&rpar;

    题意:给你一个体积为\(T\)的背包,有\(n\)个物品,每个物品的价值和体积都是是\(a_{i}\),求放哪几个物品使得总价值最大,输出它们,并且输出价值的最大值. 题解:其实就是一个01背包输出路 ...

随机推荐

  1. 低功耗蓝牙BLE之连接事件、连接参数和更新方法

    转自:http://blog.csdn.net/zzfenglin/article/details/51304084 连接事件 在一个连接当中,主设备会在每个连接事件里向从设备发送数据包.一个连接事件 ...

  2. 后台接收前台传入的json 数据

    引入JSONArray的类型为org.json而不是net.sf.json,笔者开始引入的是net.sf.json.JSONArray, 但JSONObject.fromObject(obj)时报错报 ...

  3. python 进程间共享数据 &lpar;二&rpar;

    Python中进程间共享数据,除了基本的queue,pipe和value+array外,还提供了更高层次的封装.使用multiprocessing.Manager可以简单地使用这些高级接口. Mana ...

  4. cocoapods 卸载&comma;重装&comma;高版本的使用

    今天清理下电脑,发现自己电脑上的cocoapods经常出现的一个问题就是一些经常用的第三方库cocoapods搜不到,比如SDWebImage,然后就鼓捣了一下 $pos list 命令发现M 以后的 ...

  5. java File delete 无法删除文件的原因。

    windows下使用java.io.File.delete()方法删除文件时,返回值为true. 但是本地文件仍然存在,也就是说没有删除成功. 这时候你要检查下你传进来的文件目录格式是否正确. 正确: ...

  6. this-11&period;1-笔记

    1. 基本数据类型:string   undefined   null  boolean  number 引用数据类型  Object  array  function 1.2  二者的区别 基本数据 ...

  7. j2me必备之网络开发数据处理

    第9章 无线网络开发MIDP提供了一组通用的网络开发接口,用来针对不同的无线网络应用可以采取不同的开发接口.基于CLDC的网络支持是由统一网络连接框架(Generic Connection Frame ...

  8. Gym 101149L Right Build

    L. Right Build time limit per test 2.0 s memory limit per test 256 MB input standard input output st ...

  9. ubuntu安装mysql&comma;redis&comma;python-mysqldb

    sudo apt-get install mysql-server sudo apt-get install redis-server sudo apt-get install python-redi ...

  10. 《解读window核心编程》 之 字符和字符串处理方式

    推荐的字符和字符串处理方式 開始将文本字符串想象为字符的数组,而不是 char 或字节的数组. 用通用数据类型(如 TCHAR/PTSTR )来表示文本字符和字符串. 用明白的数据类型(如 BYTE  ...