Leaving Auction CF 749D
题目:http://codeforces.com/problemset/problem/749/D
题目大意:
有n个人竞拍,也有n个叫牌,一个人可以有多个叫价牌,但也可能有一些人根本不叫价
每个叫牌由叫价人的下标和价码,后叫的价码一定比前面的高,而且不会有人连续出两次价(即不与自己竞价)
可能会有一些人离场,如果下标为1的人离场了,那么他参与的叫价均作废。
如果因离场致使出现某人连续竞价的情况,那么,按此人连续竞价最早的价码计算。
问,在有人离场的情况下,输出那个人以什么样的价码赢得拍卖,均离场,则输出0 0
思路:
记录每个人出价最高的时候,从右往左遍历,如果该编号的人离场了,则跳过,直到找到第一个未离场的人,此人即为获胜者
然后算出正确出价:上面的步骤继续往下找,下一个没有离场的人,用此人的最高价到获胜者的出价序列中找到第一个大于(因为出价按时间递增)此价的价码即为答案
代码如下:
1 #include<iostream> 2 #include<map> 3 #include<cstdio> 4 #include<vector> 5 #include<algorithm> 6 using namespace std; 7 8 const int MAX = 2e5 + 10; 9 int Pos[MAX]; //每个人参与竞拍,出价最高的时候 10 long B[MAX]; //对应每个人出的最高价 11 map<int, bool>P; 12 vector<long> Prices[MAX]; //每个人的价位表 13 14 inline bool my_cmp(const int lhs, const int rhs) 15 { 16 return B[lhs] < B[rhs]; 17 } 18 19 int main() 20 { 21 int N, Q, K, l, result, a; 22 scanf("%d", &N); 23 for (long b = 0, i = 1; i <= N && (Pos[i] = i); ++i, B[a] = b) 24 { 25 scanf("%d %ld", &a, &b); 26 Prices[a].push_back(b); 27 } 28 sort(Pos + 1, Pos + N + 1, my_cmp); 29 scanf("%d", &Q); 30 while (Q--) 31 { 32 P.clear(), result = 0; 33 scanf("%d", &K); 34 while (K--) 35 { 36 scanf("%d", &l); 37 P[l] = true; 38 } 39 int i = 0; 40 for (i = N; i > 0; --i) 41 { 42 if (!P[Pos[i]]) 43 { 44 if (result)break; 45 result = Pos[i]; 46 } 47 } 48 if (result&&B[result])printf("%d %ld\n", result, *upper_bound(Prices[result].begin(), Prices[result].end(), B[Pos[i]])); 49 else printf("0 0\n"); 50 } 51 return 0; 52 }
感谢您的阅读,生活愉快~
转载于:https://www.cnblogs.com/lv-anchoret/p/8462931.html
Leaving Auction CF 749D相关推荐
- Leaving Auction-一道就考set特性的题目
Codeforces Round #388 (Div. 2) D . Leaving Auction 题意很简单,就是卡时间,首先你要知道set的有序性,唯一性,查找搜索都是O(logN)的时间,由复 ...
- 【打CF,学算法——二星级】Codeforces Round #313 (Div. 2) B. Gerald is into Art(水题)...
[CF简单介绍] 提交链接:http://codeforces.com/contest/560/problem/B 题面: B. Gerald is into Art time limit per t ...
- 『参考』.net CF组件编程(4)——为自定义组件添加工具箱图标!
前言: 在前三篇的文章中,和大家一起创建了一个用于TCP连接检测的小组件,如果你记不得了,可以通过以下链接去回顾一下: 『参考』.net CF组件编程(1)--基础之后 『参考』.net CF组件编程 ...
- git 提交丢失Warning, you are leaving 2 commits behind,
早上在自己的一个版本代码上编辑,提交commint,但是checkout到其他分支再checkout回来发现该的东西不见了, 幸好terminal还没有关掉,回看日志: Warning: you ar ...
- OC对象 vs CF对象
2019独角兽企业重金招聘Python工程师标准>>> OC对象 vs CF对象 在ARC场景下,对象所有权没有转换 使用__bridge关键字即可实现CF对象和OC对象之间的自由转 ...
- CF 990A. Commentary Boxes【数学/模拟】
[链接]:CF [题意]:对于一个数n,每次加一的代价是a,每次减一的代价是b,求被m整除时的最小代价. [分析]:分情况讨论,自己多举几个栗子. [代码]: #include<cstdio&g ...
- 推荐算法——基于协同过滤CF
https://www.toutiao.com/a6643326861214482957/ 2019-01-06 18:21:09 前边我们已经介绍了推荐算法里的基于内容的推荐算法CB,今天我们来介绍 ...
- 索引贴——移动开发(.Net CF 停止更新)
这是关于本人博客的技术索引贴,希望能方便的让您阅读到相关技术文章--不断更新中.一整理才发现,好多啊,哈哈- 一..Net CF技巧:搜集.转载一些和CF开发相关的辅助文章,比较适合初学者.开发入门者 ...
- 解答:CF截图保存在哪
为什么80%的码农都做不了架构师?>>> 大家玩CF(穿越火线)的时候遇到精彩的画面总希望截图保存下来,然而有些游戏玩家截图后却不知道CF截图保存在哪!这不得不说是个悲剧,但是 ...
最新文章
- oracle10g sql跟踪,SQL性能的度量 - 语句级别的SQL跟踪autotrace
- ASP.Net4.0中新增23项功能
- 关于 Nginx 配置 WebSocket 400 问题
- [20180602]函数与标量子查询3.txt
- 命令行运行vbs脚本并传参数给vbs中的变量简单示例
- 苹果显示已连接网络连接到服务器异常,苹果确认iphone密码,显示连接服务器出现问题,为什么...
- 兼容IE与firefox的css 线性渐变(linear-gradient)
- 阿里云POLARDB如何帮助百胜软件应对数据库的“巅峰时刻”
- 容器编排技术 -- Kubernetes kubectl create clusterrolebinding 命令详解
- ArcGIS利用数据驱动工具条批量出图(python代码)
- 用python写一个文件管理程序下载_Python管理文件神器 os.walk
- C# 异步调用中使用回调方法
- BCD码与十进制转换
- 毕业那天我们一起失恋
- 服务器系统影子系统,影子系统安装教程
- eclipse导入静态网页模板+搭建springboot环境示例+细节问题解决(详细)
- 安装Image J 插件
- shell脚本中set -e作用
- 内存卡被格式化怎么恢复
- via浏览器皮肤html,Via浏览器 v4.2.1 身材小巧功能全面
热门文章
- pass样本量_年度质量回顾-样本量
- 摄影测量--相对定向元素与绝对定向元素
- 最速下降法的C语言实现
- 运动目标检测混合高斯背景建模
- python中matlab函数图像处理,MATLAB图像处理--同态滤波(代码及示例)
- 【编撰】linux IPC 001 - 概述
- python鼠标移动事件_给turtle屏幕增加鼠标移动事件核心代码
- docker部署web项目_IntelliJ IDEA 部署 Web 项目
- mysql数据字典生成器_「python技术」列表推导、生成器表达式和字典推导的差异及其示例
- 模板类的析构函数如何写_如何写财务分析报告?全套财务分析报告模板(含分析方法及流程)...