Codeforces Round #536 (Div. 2) B. Lunar New Year and Food Ordering
题意:有n种菜,m位顾客,每种菜都有它们的数量ai与价值ci;m位顾客,每一位顾客选择i-th种菜,数量为y,若i-th数量不够,则选择其他菜。若所有的菜都已售完,而顾客未能点满y道菜,顾客则会生气离开。问顾客最少花费多少钱?
思路:简单的贪心,按照菜的价格将下标排个序。顾客选择i-th菜,数量为y,若i-th菜数量足够,则花费ci*y,ai-=y;若i-th数量不够,则选择其他菜中价格便宜的。
总结与分析:
该题思路清晰简单,但仍然有需要注意的地方。由于i-th菜已经售完,但是仍然去重复判断该菜的数量,增加时间复杂度,T了一次。
#include<bits/stdc++.h>
using namespace std;
#define ll long longll a[110000],c[110000],b[110000];bool cmp(int i,int j)
{return c[i]<c[j];
}int main()
{ll n,m;scanf("%lld%lld",&n,&m);for(int i=1;i<=n;i++) scanf("%lld",&a[i]);for(int i=1;i<=n;i++){scanf("%lld",&c[i]);b[i]=i;}sort(b+1,b+n+1,cmp);int i=1;while(m--){int x,y;ll ans=0;scanf("%d%d",&x,&y);if(a[x] < y){ans += a[x]*c[x];y -= a[x];a[x]=0;for(;i<=n;i++){ //若用i=1;i<=n;i++,则已售完的菜会多次判断,增加时间复杂度if(a[b[i]] < y){ans += a[b[i]]*c[b[i]];y -= a[b[i]];a[b[i]] = 0;}else{a[b[i]] -= y;ans += y*c[b[i]];y = 0;break;}}if(y) ans = 0; //若菜不够y,则花费为0;}else {a[x] -= y;ans += y*c[x];}printf("%lld\n",ans);}return 0;
}
Codeforces Round #536 (Div. 2) B. Lunar New Year and Food Ordering相关推荐
- Codeforces Round #536 (Div. 2) E. Lunar New Year and Red Envelopes(DP+muitiset优化)
题目链接:http://codeforces.com/contest/1106/problem/E #include<bits/stdc++.h> using namespace std; ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #563 (Div. 2)/CF1174
Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...
- 构造 Codeforces Round #302 (Div. 2) B Sea and Islands
题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...
- Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...
- Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...
- Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...
- Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...
- Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...
最新文章
- 基于FPGA系统合成两条视频流实现3D视频效果
- python中math库_Python库详解之math库
- 自编码clone图解
- 【String类、static、Arrays类、Math类】
- [转帖]Mootools源码分析-03 -- Hash
- 十五步骤手把手学会制作网吧XP母盘制作
- Java并发编程实战——volatile
- 324. Wiggle Sort II
- CSS 魔法:学海无涯,而吾生有涯
- 2、CentOS中修改yum源
- 【限时免费】大千万象,“爬”你所需!老司机教你利用爬虫建造一座图书馆...
- 基于Springboot的在线音乐网站开发与实现
- 地区三级联动数据库(中国行政区划分数据库)【2018年1月】
- 以太坊钱包Metamask 下载,Metamask 7.7.9最新版官方版下载和安装方法
- mysql自增主键和mybatis自增主键不一致问题(已解决):
- 【后端检测-绕过】文件头检测绕过、二次渲染绕过
- c语言中输出1st,高等学校计算机等级考试C语言模拟试题1st-all.doc
- js获取随机数与随机颜色函数的简单封装
- “凝心聚力,携手共进”辰视智能2021第一期登山公益活动顺利举行
- 2022-2027年中国图书零售连锁市场竞争态势及行业投资前景预测报告