“百度之星”资格赛 1004 度度熊的午饭时光
来源:互联网 发布:高校教务网络管理系统 编辑:程序博客网 时间:2024/06/09 20:13
度度熊的午饭时光
题意。。。感觉好坑啊
题意&分析: 这是一个 0 1背包问题,只不过要求菜品得分尽可能的高,菜品序号和尽可能的小,同时价格尽量低。好奇怪有没有!!!我也是很神奇的就A出来啦。题意不清且不严谨,数据很水的样子,只需要利用最后的dp结果逆推价格就可以了过了,兴许出题人的思路我没有跟上吧,感觉题目的标程是有bug的,求出来的并不是最优解。有组数据很有问题。
数据如下:
1138858 4981 6828 4674 2014 5862 1456 3935 54
代码如下:
#include <algorithm>#include <bitset>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <map>#include <queue>#include <set>#include <stack>#include <string>#include <cctype>#include <fstream>#define INF 0x3f3f3f3f#define TEST cout<<"stop here"<<endl using namespace std;typedef long long ll;const ll mod = 1e9 + 7;struct meal{ int score,cost;}a[110];bool ans[110];int dp[1010];bool vis[110][1010];int main(){ std::ios::sync_with_stdio(false); std::cin.tie(0); int T,kase=1; cin>> T; while(T--){ int b,n; cin>>b>>n; for(int i=1;i<=n;i++) cin>>a[i].score>>a[i].cost; memset(dp,0,sizeof(dp)); memset(vis,false,sizeof(vis)); memset(ans,0,sizeof(ans)); for(int i=1;i<=n;i++){ for(int j=b;j>=0;j--){ if(j>=a[i].cost){ if(dp[j] < dp[j-a[i].cost] + a[i].score){ dp[j] = dp[j-a[i].cost] + a[i].score; vis[i][j] = true; } else vis[i][j] = false; } } } int p=b,cnt = 0; for(int i=n;i>=1;i--){ if(vis[i][p]){ ans[i]=true; p -= a[i].cost; cnt++; } } int ANS = 0; for(int i=1;i<=n;i++){ if(ans[i]) ANS += a[i].cost; } printf("Case #%d:\n",kase++); printf("%d %d\n",dp[b],ANS); for (int i = 1; i <= n; i++) if (ans[i]) printf("%d%c", i, (--cnt == 0) ? '\n' : ' '); } return 0;} return 0;}
AC啦
阅读全文
4 3
- “百度之星”资格赛 1004 度度熊的午饭时光
- 2017百度之星资格赛1004度度熊的午饭时光
- 度度熊的午饭时光[2017百度之星资格赛 1004]
- hdu6083 2017"百度之星"资格赛1004 度度熊的午饭时光(背包dp+记录路径)
- 2017百度之星资格赛 1004 度度熊的午饭时光(01背包)
- 2017"百度之星"程序设计大赛-资格赛-1004-度度熊的午饭时光
- 【2017百度之星资格赛】1004.度度熊的午饭时光思路及代码
- 2017百度之星资格赛:1004. 度度熊的午饭时光(01背包+记录路径)
- 2017百度之星资格赛 度度熊的午饭时光(dfs)
- 2017百度之星资格赛 hdu6083 度度熊的午饭时光 (01背包+字典序路径)
- 度度熊的午饭时光 百度之星
- 百度之星 度度熊的午饭时光
- 百度之星1004度度熊的午饭时光
- 度度熊的午饭时光 2017百度之星
- 度度熊的午饭时光
- 度度熊的午饭时光
- 1004 度度熊的午饭时光<01 背包>
- HDU6083 度度熊的午饭时光
- python学习笔记
- 如何实现servlet的单线程模式
- 第一次写的linux脚本
- 异或
- 莫比乌斯反演
- “百度之星”资格赛 1004 度度熊的午饭时光
- python 中__name__ = '__main__' 的作用
- ios获取当月第一天和最后一天
- 从头开始调试stm32 USB HID
- python中如何使用二维数组
- WebView问题总结
- Time To Get Up HDU
- HDUOJ 产生冠军(stl)
- Java内存区域与对象创建过程