题意:有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相关推荐

  1. 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; ...

  2. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  3. 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 ...

  4. 构造 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 的例子可以 ...

  5. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  6. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  7. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

  8. Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...

  9. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...

最新文章

  1. 基于FPGA系统合成两条视频流实现3D视频效果
  2. python中math库_Python库详解之math库
  3. 自编码clone图解
  4. 【String类、static、Arrays类、Math类】
  5. [转帖]Mootools源码分析-03 -- Hash
  6. 十五步骤手把手学会制作网吧XP母盘制作
  7. Java并发编程实战——volatile
  8. 324. Wiggle Sort II
  9. CSS 魔法:学海无涯,而吾生有涯
  10. 2、CentOS中修改yum源
  11. 【限时免费】大千万象,“爬”你所需!老司机教你利用爬虫建造一座图书馆...
  12. 基于Springboot的在线音乐网站开发与实现
  13. 地区三级联动数据库(中国行政区划分数据库)【2018年1月】
  14. 以太坊钱包Metamask 下载,Metamask 7.7.9最新版官方版下载和安装方法
  15. mysql自增主键和mybatis自增主键不一致问题(已解决):
  16. 【后端检测-绕过】文件头检测绕过、二次渲染绕过
  17. c语言中输出1st,高等学校计算机等级考试C语言模拟试题1st-all.doc
  18. js获取随机数与随机颜色函数的简单封装
  19. “凝心聚力,携手共进”辰视智能2021第一期登山公益活动顺利举行
  20. 2022-2027年中国图书零售连锁市场竞争态势及行业投资前景预测报告

热门文章

  1. 制作 tusimple 数据集格式的数据
  2. u盘工作表在计算机上打不开,做完Excel表格保存在U盘中拿到另外一台电脑上使用打不开的解决方法...
  3. WCF学习(六):实例
  4. Github最火项目:程序员必读职场15大定律和7大原则
  5. 《静儿的服务治理私房菜》服务治理概述
  6. css 宽高比例自适应,css图片根据div宽高比例自适应
  7. (Java数据库编程基础操作)Statement实现数据查询操作
  8. c++循环删除map元素
  9. Java垃圾自动回收机制
  10. 网站项目-模仿三国杀官网