题干:

蒜头去嘉年华玩儿套圈圈,是这么玩儿的。有一些瓶口口径不同的啤酒瓶,瓶子里面有一些奖品。如果蒜头用手上的圈圈套中了啤酒瓶,那么奖品就归他了。

假设蒜头君无限精准,指哪儿打哪儿,并且蒜头了解到,只有圈圈的半径 严格大于 啤酒瓶半径,才能套中。

并且蒜头君知道自己手上的每个圈圈的半径,也知道每个啤酒瓶的半径和里面物品相对应的价值。

当然,奖品是无限多的,意思就是如果蒜头君套中了一个啤酒瓶并且获得了奖品,下次可以继续套获得同样的奖品。

现在蒜头君想问你,他最大能获得多少价值。

输入格式

第一行两个整数 NN,MM 代表圈圈的个数和啤酒瓶的个数。

第二行 NN 个整数代表圈圈的半径 r_crc​。

接下来 MM 行每行两个整数 r_brb​,vv 代表啤酒瓶的半径 rr 和相应的价值 vv。

输出格式

输出一个整数,代表蒜头能获得的最大价值。

数据范围

对于 30\%30% 的数据:N = 1N=1 , M = 1M=1 , 1 \le r_c , r_b , v \le 1001≤rc​,rb​,v≤100 。

对于 60\%60% 的数据:1 \le N \times M \le 10000001≤N×M≤1000000, 1 \le r_c , r_b , v \le 1001≤rc​,rb​,v≤100 , 保证所有的价值 vv 都相等。

对于 100\%100% 的数据:1 \le N \times M \le 10000001≤N×M≤1000000, 1 \le r_c , r_b , v \le 1001≤rc​,rb​,v≤100。

输出时每行末尾的多余空格,不影响答案正确性

样例输入复制

2 2
2 3
1 2
2 3

样例输出复制

5

解题报告:

但是不知道为啥,这个AC代码1竟让比代码2要慢。。。这个AC代码1几乎是线性的啊。(应该说明有极端数据n=1e6,m=1这样的,就把nlogn给卡了)

AC代码1:(复杂度O(nlogn+mlogm+n+m),109ms)

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e6 + 5;
typedef pair<ll,ll > PLL;
ll R[MAX],r[MAX],v[MAX];
PLL p[MAX];
int main()
{int n,m;cin>>n>>m;for(int i = 1; i<=n; i++) scanf("%lld",R+i);for(int i = 1; i<=m; i++) scanf("%lld%lld",&p[i].first,&p[i].second);sort(R+1,R+n+1);sort(p+1,p+m+1);ll ans = 0,maxx = 0,j=1;for(int i = 1; i<=n; i++) {while(R[i] > p[j].first && j<=m) maxx = max(maxx,p[j].second),j++;ans += maxx;} printf("%lld\n",ans);return 0 ;}

AC代码2:(复杂度O(n*m),66ms)

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e6 + 5;
ll R[MAX],r[MAX],v[MAX];
int main()
{int n,m;cin>>n>>m;for(int i = 1; i<=n; i++) scanf("%lld",R+i);for(int i = 1; i<=m; i++) scanf("%lld%lld",r+i,v+i);ll ans = 0,maxx = 0;for(int i = 1; i<=n; i++) {maxx = 0;for(int j = 1; j<=m; j++) {if(R[i] > r[j]) maxx = max(maxx,v[j]);}ans += maxx;} printf("%lld\n",ans);return 0 ;}

【计蒜客信息学模拟赛1月月赛 - B】蒜头套圈圈(贪心,前缀最大值)相关推荐

  1. 【计蒜客信息学模拟赛1月月赛 - D】Wish(dp计数,数位)

    题干: 如果一个数大于等于 10且任意连续两位都是质数,那么就称之为 Wish 数.当然,第一个 Wish 数是 11. 比如 97,111,131,119 都是 Wish 数,而 12,136 则不 ...

  2. 计蒜客NOIP模拟赛4 D2T1 鬼脚图

    鬼脚图,又称画鬼脚,在日本称作阿弥陀签,是一种经典游戏,也是一种简易的决策方法,常常用来抽签或决定分配组合. 下图就是一张鬼脚图,其包含若干条竖线和若干条横线.请注意,横线只能水平连接相邻的两条竖线, ...

  3. 计蒜客NOIP模拟赛(2) D1T1邻家男孩

    凡是一个具有领导力的孩子.现实生活中他特别喜欢玩一个叫做 UNO 的纸牌游戏,他也总是带着其他小朋友一起玩,然后战胜他们.慢慢地,他厌倦了胜利,于是准备发明一种新的双人纸牌游戏. 初始时,每个人手中都 ...

  4. 计蒜客NOIP模拟赛(2) D2T2紫色百合

    [问题描述] "牵着你的手的是她,路边开满了紫色的百合花--" 你从梦中醒来,却依然忘不了梦中的她百合花,每朵百合花都有一个权值,在二进制下写成一行'1',第i朵紫色百合的权值在二 ...

  5. 计蒜客NOIP模拟赛4 D2T2 跑步爱天天

    YOUSIKI 在 noip2016 的一道<天天爱跑步>的题爆零后,潜心研究树上问题,成为了一代大师,于是皮皮妖为了测验他,出了一道题,名曰<跑步爱天天>. 有一个以 1 为 ...

  6. 【计蒜客2017NOIP模拟赛1】

    D1T1 题面 题解:一开始以为傻题,旋转个坐标系就行了,结果光荣爆零~ 结果发现旋转坐标系后,由于多了一些虚点,锤子砸到虚点上了~gg [没有代码] D1T2 题面 题解:计算出每个边对答案的贡献即 ...

  7. 计蒜客信息学入门赛 #17--B

    蒜头君平时勤工俭学,在两家店 A,BA,B 里都有兼职,蒜头君一天只会去一家店里打工,现在告诉你蒜头君每天的打工情况,请你帮他计算一下,他最多连续多少天是去同一家店打工的? 输入格式 只有一行由 A, ...

  8. 计蒜客信息学入门赛 #16--B

    蒜头君报名参加了折纸兴趣小组, 他表现出了极大的热情,折出了 nn 件折纸作品. 他的作品只有 33 种,分别是长方形.正方形和三角形. 现在蒜头君很想知道他的 nn 件折纸的周长之和. 输入格式 第 ...

  9. 计蒜客信息学入门赛 #16--C--最大区间包含问题--待完善

    蒜头君的工厂需要生产 nn 个产品,每个产品会在记录本上记录开始生产的时间 xx 以及完成生产的时间 yy. 现在蒜头君拿到这本记录本以后想知道最多有多少件产品同时在生产线上生产. 注意:在同一时刻总 ...

最新文章

  1. ECLIPSE配置MAVEN
  2. 掌握Python 机器学习 读书笔记 9 (流水线 算法保存)
  3. 会计证考试《财经法规与职业道德》第四章精选题
  4. php对象怎么拆分字符串数组,在PHP中将字符串拆分为Unicode字符数组的最佳方法是什么?...
  5. GO语言-基础语法:循环
  6. 远程开发初探 - VS Code Remote Development
  7. 斜堆学习笔记+复杂度证明
  8. activiti api文档_【白银人机】Activiti 工作流从入门到入土:完整 hello world 大比拼(API 结合实例讲解)...
  9. python常量列表_Python中实现常量(Const)功能
  10. 计算机网络 第四章 网络层
  11. Linux 中的 DTrace :BPF 进入 4.9 内核
  12. Node.js与V8引擎
  13. 英语报纸计算机类,报纸和电脑英语作文
  14. 【每日一具10】磁力资源搜索助手特别版
  15. Linux 系统硬盘MBR转换为GPT格式并扩容
  16. 计算机控制技术结束语,电子商务在线 - 计算机控制技术教学改革探索与实践
  17. DirectX11 使用Cube Mapping 立方体环境贴图实现天空、物体反射效果
  18. 行测-言语理解与表达-逻辑填空
  19. 抖音创作者身份类型和视频类型
  20. 任天堂 Wii 模拟器 Dolphin 已原生支持苹果 M1 Mac 电脑

热门文章

  1. 847. Shortest Path Visiting All Nodes(三)
  2. Codeforce - 920C- Swap Adjacent Elements 排序|思维
  3. ihtml2document能不能根据id获取dom_一段监视 DOM 的神奇代码
  4. html代码 打开本地文件,打开本地HTML文件
  5. java构造方法和实例化,10. JavaSE-子类实例化过程 构造方法间调用
  6. jquery事件绑定解绑机制源码分析
  7. action无法传参数给html页面,HTML 解决form表单提交时,action url中参数无效问题
  8. python pp模块_python常用模块
  9. ArcGIS改变数据集或要素类的的坐标系(投影)
  10. ubuntu gedit出错:Failed to connect to the session manager