Codevs 1025 选菜
在小松宿舍楼下的不远处,有PK大学最不错的一个食堂——The Farmer’s Canteen(NM食堂)。由于该食堂的菜都很不错,价格也公道,所以很多人都喜欢来这边吃饭。The Farmer’s Canteen的点菜方式如同在超市自选商品一样,人们从一个指定的路口进去,再从一个指定的路口出来并付款。由于来这里就餐的人数比较多,所以人们自觉地在进入口的时候就排成一个长队,沿着长长的摆放着各式各样佳肴的桌子进行选菜。
小松发现,这种选菜方式意味着,他不能在选菜的时候离开队伍去拿一些他已经看过了的菜或者没有看过的菜,因为插队是不礼貌的,也是被BS的。
每个菜有一个价值,而小松也自己给每个菜定了一个在他看来的美味价值,例如红烧小黄鱼在小松看来是美味价值很高的,而花菜在小松眼里则是美味价值极低的菜肴。而有一些菜是营养价值极其高的菜(例如米饭),所以无论它的美味价值是多少,小松都会选择1份。现在小松带了X元钱来食堂就餐,他想知道,在不欠帐的情况下,他选菜的美味价值总合最大是多少。
请从输入文件farmer.in中读入相关数据。输入的第一行包括两个个整数n(1≤n≤100),k(0≤k≤实际菜的种类)和一个实数X(0≤X≤100),表示有n个菜式,有k种菜是必选的,小松带来了X元钱(精确到“角”)。接下来的1行包含n个实数,表示菜桌上从入口到出口的所有菜的价格(0≤价格≤10,单位“元”,精确到“角”);再接下来的1行包含n个整数,表示菜桌上从入口到出口的所有菜的美味价值(0≤美味价值≤100);再接下来一行包含n个整数,表示菜桌上从入口到出口的所有菜的种类编号(1≤种类编号≤100)。最后一行包含k个整数,分别表示必选菜的种类编号。要注意的是,同一种编号的菜可以出现多次,但是他们的价格和美味价值都是一样的。对于同一种菜(无论是不是必选菜),小松最多只会选择1份(买两份红烧豆腐多没意思啊)。另外,必选菜的价格之和一定不超过X。
请将结果输出到输出文件farmer.out中。输出包含一个整数,表示小松能选到的菜的美味价值总和最大是多少。
注:你可以假设数据中不会出现小松带的钱不够买必买菜的情况。
7 1 5.0
4 1 3 0.9 2 0.5 0.9
7 3 5 2 5 0 2
6 3 5 2 4 1 2
2
10
#include<iostream>
using namespace std;
int v[]={},c[]={},w[]={},f[]={},n,m,k,x,mx=,maxn=,visi[]={};
double a,b;
int main()
{
cin>>n>>m>>b;
x=(int)(b*);
for(int i=;i<=n;i++)
cin>>a,v[i]=(int)(a*);
for(int i=;i<=n;i++)
cin>>w[i];
for(int i=;i<=n;i++)
{
cin>>k;
visi[k]++;
if(visi[k]>) v[i]=w[i]=;
else c[k]=i;
}
for(int i=;i<=m;i++)
{
cin>>k;
mx+=w[c[k]];
x-=v[c[k]];
w[c[k]]=v[c[k]]=;
}
for(int i=;i<=n;i++)
for(int j=x;j>=v[i];j--)
{
f[j]=max(f[j],f[j-v[i]]+w[i]);
maxn=max(maxn,f[j]);
}
cout<<maxn+mx;
}
Codevs 1025 选菜的更多相关文章
- codevs 1025 选菜——01背包
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 在小松宿舍楼下的不远处,有PK大学最不错的一个食堂—— ...
- 【wikioi】1025 选菜
题目链接 算法:01背包DP 此题主要是预处理恶心.我提交了2次...第一次数组开小了...(体积要=V*10) 注意: 钱做为体积,美味价值作为价值 注意,因为体积(钱)是小数点后1位,故数组下标无 ...
- CODEVS【1025】选菜
1025 选菜 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 在小松宿舍楼下的不远处,有PK大学最不错的一个食堂——The ...
- codevs 3372 选学霸
3372 选学霸 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果 ...
- codevs——3372 选学霸(背包)
题目等级 : 大师 Master 时间限制: 1 s 空间限制: 128000 KB 题解 题目描述 Description 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果实 ...
- codevs——1008 选数
1008 选数 2002年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 已知 n ...
- codevs 3372 选学霸(hash+并查集+多重背包)
先通过并查集处理出来有多少种不同的集合,每一个集合有多少人.一定要不要忘记了与别的没有联系的独立点. 并查集的时候能够通过hash处理出来每一个数目同样的集合的个数. 这样以人数为权值.个数为限制进行 ...
- codevs 1008 选数
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n).从 n ...
- VUE新版扫码下单必选分类设置FAQ
使用场景:商家想要设置某些分类下的商品设置必选,否则不能下单.如某火锅店,商家想要设置汤底这个分类下的商品,顾客扫码下单的时候必须选择一份才能下单,此时 就可以使用这个功能 配置步骤和注意事项如下: ...
随机推荐
- svn利用钩子实现代码同步到web目录
思路: 找 到SVN Server中的仓库(Repositories)文件夹的位置,在相应的项目文件夹中找到hooks文件夹.在该文件夹中添加一个post- commit文件:当有commit动作发 ...
- 高性能文件缓存key-value存储—Redis
1.高性能文件缓存key-value存储-Memcached 2.ASP.NET HttpRuntime.Cache缓存类使用总结 备注:三篇博文结合阅读,简单理解并且使用,如果想深入学习,请多参考文 ...
- 使用 FocusPoint.js 实现图片的响应式裁剪
通常网站的布局都不是单一的.例如图像在电脑.平板和智能手机上可能显示的形状是不同的.特别是如果你使用的是全屏图像,在你必须使用相同的图像文件的情况下,你的主题可能会被截断或完全缺失,或者看起来很尴尬. ...
- Snabbt.js – 极简的 JavaScript 动画库
Snabbt.js 是一个简约的 JavaScript 动画库.它会平移,旋转,缩放,倾斜和调整你的元素.通过矩阵乘法运算,变换等可以任何你想要的方式进行组合.最终的结果通过 CSS3 变换矩阵设置. ...
- TI的DSP、ST的ARM、Intel的X86浮点性能对比
估计没什么价值,单纯地记录下时间,以便以后查看. TMS320F28335 STM32f030 i3 4170 i3 4170 主频 150MHz 48MHz 3.7GHZ 3.7GHZ IDE ...
- Atitit.url 汉字中文路径 404 resin4 resin 解决 v2 q329
Atitit.url 汉字中文路径 404 resin4 resin 解决 v2 q329 1. Pluginx机制1 2. Code1 3. 参考4 1. 原理 过滤器 ,,拦截jpg w ...
- Learn RxJava
Learn RxJava http://reactivex.io/documentation/operators.html https://github.com/ReactiveX/RxJava/wi ...
- ReactiveCocoa学习总结
最近一直断断续续学习关于ReactiveCocoa的知识内容,对于它的一些基础内容将通过本文进行一个总结,主要是一些入门知识 一:RACSignal一些运用 @interface RACSignalT ...
- 使用AndroidStudio进行NDK开发简单配置
1. 准备工作 在实际写代码之前,首先我们还是需要做一些准备工作: 下载NDK开发包:Android官方下载页面 配置系统环境变量 下载好NDK开发包之后,直接解压到任意目录,然后需要配置一下系统环境 ...
- 优化MySchool数据库(一)
<优化MyShcool数据库>:能够的独立的分析|设计|创建|运营|你的独立的数据库系统 设计--->实现--->TSQL--->查询优化---->性能优化技术-- ...