Codeforces Round #388 (Div. 2) D . Leaving Auction
题意很简单,就是卡时间,首先你要知道set的有序性,唯一性,查找搜索都是O(logN)的时间,由复杂度可以大概推算时间。
每个人的最大出价要数组maxprice 存起来,每个人的每一次出价用set存起来,以便找到最小价格。询问之前,先构造一个最大价格集合set< pair< int,int > >, 前面是价格,后面是人编号。
每次询问,先删除,后插回,题目保证q次询问的所有K加起来不超过200000

下面是代码,483ms

#include <iostream>
#include <cstdio>
#include <set>
#include <algorithm>
using namespace std;
const int maxn = 200005;
int maxprice[maxn]={0},a[maxn];
set<int> peo[maxn];//everyone's bids' list
set<pair<int,int > > allbid;//set是有序的,按小到大排,存pair的话,按first的值排序
//每次询问的删除、插入,先判断可以节省时间,而不是都是k int main()
{int n;scanf("%d",&n);int num,price;for(int i=1;i <= n;++i){scanf("%d %d",&num,&price);peo[num].insert(price);maxprice[num] = price;}for(int i=1;i <= n;++i){if(maxprice[i])allbid.insert(make_pair(maxprice[i],i));}int q,k;scanf("%d",&q);set<pair<int,int> >::iterator it;while(q--){//O( (sum of ki) * log n), log 200000 ~= 18scanf("%d",&k);int t;for(int j=1;j<=k;++j){//ki log n scanf("%d",&t); a[j] = t;if(maxprice[t])allbid.erase(make_pair(maxprice[t],t));                 }if(allbid.size()==0)printf("0 0\n");else {it = allbid.end();it--;int winp = (*it).second;if(allbid.size()==1)printf("%d %d\n",winp,*(peo[winp].begin()));else {it--;int secV = (*it).first;printf("%d %d\n",winp,*(peo[winp].upper_bound(secV) ));}}for(int j=1;j<=k;++j){//ki log nt = a[j];if(maxprice[t])allbid.insert(make_pair(maxprice[a[j]],a[j]));}}return 0;
}

Leaving Auction-一道就考set特性的题目相关推荐

  1. 在一些测试的时候,我总是被考“思维定势”的题目给难住

    在一些测试的时候,我总是被考"思维定势"的题目给难住!郁闷!!!! 例如:两根不均匀的香,各能燃烧1个小时,问现在比赛时间是45分钟,要如何确定时间?总共能确定几种时间? 以下,是 ...

  2. 11,一道关于栈内存分配的题目

    今天看到一道关于栈内存分配的题目,很是精悍,索性记录下来. 一.题目 假设在一个 32 位 little endian 的机器上运行下面的程序,结果是多少? #include <stdio.h& ...

  3. 笔试一道honor的嵌入式软件程序编写题目【c语言字符串】

    笔试一道honor的嵌入式软件程序编写题目 - 题目要求: 原题目:[给定一个字符串,将该字符串中的大写字母全部转换为小写,并将字母转换为数字0,最后将处理的字符串倒序输出.] 解析:[要求输入一组字 ...

  4. Leaving Auction CF 749D

    题目:http://codeforces.com/problemset/problem/749/D 题目大意: 有n个人竞拍,也有n个叫牌,一个人可以有多个叫价牌,但也可能有一些人根本不叫价 每个叫牌 ...

  5. 2018春考计算机技能考试题目,2018年山东省春季高考技能考试信息技术类专业考试(样题).PDF...

    2018年山东省春季高考技能考试信息技术类专业考试(样题).PDF 2018 年山东省春季高考技能考试信息技术类专业考试 (样题 ) 考试说明 1 .考试时间为 60分钟 : 2 .考试内容包括图形图 ...

  6. 浙商银行计算机专业笔试考什么,浙商银行笔试题目汇总

    浙商银行笔试题目有哪些?以下就是小编整理的浙商银行笔试题目汇总,一起来看看吧! 浙商银行笔试真题(一) 浙商银行笔试本人选考的是综合类题!看到浙商银行笔试题目时,就感觉回到两年前考研的<管理学& ...

  7. 一道迅雷招聘海报上的题目

    2009的2009次方,所得数各位数字求和,结果继续求和,直到剩下一位数字,需要几次求和运算,这一位数字是多少? 这里有一道类似的题,大家可以参考下,也并不十分难的.

  8. 2020年全国硕士研究生入学统一考试管理类专业学位联考数学试题——纯题目版

    2020 级考研管理类联考数学真题 一.问题求解(本大题共 15 小题,每小题 3 分,共 45 分)下列每题给出 5 个选项中,只有一个是符合要求的,请在答题卡上将所选择的字母涂黑. 1.某产品去年 ...

  9. AI Studio下C语言编程:一道简单的C语言作业题目

    简 介: 本文测试了在 AI Studio中进行C语言编程的过程.使用与 搭建AI Studio 中Python开发环境 同样的 "AIS" python文件,可以在Windows ...

最新文章

  1. mysql表 字段 说明_mysql表字段说明
  2. 北京大学信息科学技术学院招收2022级博士生
  3. VC中的宏 (#define) 与预处理 (#if/#ifdef/#pragma) 的使用方法总结。
  4. java中scanner if用法_Java通过Scanner了解if...else if语句
  5. python表白-教你如何用Python表白
  6. 04-JDBC学习手册:JDBC中使用transaction(事务)编程和Javabean定义
  7. 《企业软件交付:敏捷与高效管理精要》——2.1 引言
  8. Zcash下一次NU5升级——基于Halo 2
  9. ngix反向代理配置
  10. 基于51单片机的温度检测调节系统设计
  11. c语言中isupper用法,C语言 isupper()用法及代码示例
  12. 用聚宽量化炒股-5获取数据函数-7)获取指数成分股权重函数get_index_weights、获取行业成分股代码函数get_industry_stocks
  13. Telink BLE SIG Mesh GATT 配网功能
  14. html好看目录样式,HTML_CSS使用详解,目录样式类型(List Style Type) 说 - phpStudy
  15. php 检测链接,PHP检测链接是否存在的代码实例分享
  16. ORACLE使用DBLINK导入导出数据
  17. git撤回上一次的提交
  18. OpenCV实践小项目(二) -文档ocr扫描识别
  19. android 开发论坛资源URL
  20. PCB Layout爬电距离、电气间隙的确定

热门文章

  1. 【android工具篇】Firefly-RK系列(eg:RK3288 RK3368)一键获取root权限工具RootUtils
  2. 2021年高处安装、维护、拆除多少钱及高处安装、维护、拆除模拟考试题
  3. windows远程桌面连接家中电脑
  4. eBay 大数据平台的 HDFS 性能优化实践
  5. 【程序设计】C语言程序设计基础教材题解
  6. Pandas中的Dataframe和Series
  7. 天天动听1.70 java_天天动听java通用版 v1.7
  8. 学习计算机基础的方法,计算机基础知识的有效学习方法
  9. Microsoft .NET Framework 3.5 sp1离线安装(DotNetFX35)
  10. 苹果手机与手表怎么通信_苹果手表是新的入门手机