Leaving Auction

题目链接:http://codeforces.com/contest/749/problem/D

二分

本来以为是哪种神奇的数据结构,没想到sort+lower_bonud就解决了,妙。

这道题的精髓在于将每个人出价的最大值记录下来,最后竞拍到的一定为没有leave的人中出价最高的那个人(因为It's guaranteed that the sum of k over all question won't exceed 200 000. 所以这个操作的总复杂度不会超过200 000)。而这个人的最低出价,只需要比第二个人的最高出价高即可,此操作可以用二分。//最后不得不说scanf和cin在没有关同步之前,差别真的很大...

代码如下:

 #include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <set>
#define pb(x) push_back(x)
#define N 200005
using namespace std;
int n,q,k,t,biggest[N],person[N];
vector<int>man[N];
bool cmp(int a,int b){
return biggest[a]<biggest[b];
}
int main(void){
scanf("%d",&n);
for(int i=;i<=n;++i){
int a,b;
scanf("%d%d",&a,&b);
man[a].pb(b);
biggest[a]=b;
person[i]=i;
}
sort(person+,person++n,cmp);
scanf("%d",&q);
while(q--){
set<int>leave;
scanf("%d",&k);
for(int i=;i<k;++i){
scanf("%d",&t);
leave.insert(t);
}
int temp[],num=;
temp[]=temp[]=;
for(int i=n;i>=;--i){
if(leave.count(person[i]))continue;
temp[num++]=person[i];
if(num==)break;
}
if(man[temp[]].size()==){
printf("0 0\n");
continue;
}
if(num==){
int it=*lower_bound(man[temp[]].begin(),man[temp[]].end(),biggest[temp[]]);
printf("%d %d\n",temp[],it);
}else if(num==){
printf("%d %d\n",temp[],man[temp[]][]);
}
}
}

最新文章

  1. 原: 安装VMtools过程流水帐
  2. List, Set, Map是否继承自Collection接口?
  3. for循环往Oracle中插入n条数据,主键自增
  4. 一步一步学习C++
  5. mac下安装pcntl
  6. MySQL - 启停服务
  7. c++模板实现抽象工厂
  8. Java基础知识强化之集合框架笔记36:List练习之键盘录入多个数据在控制台输出最大值
  9. 用ATL和MFC来创建ActiveX控件
  10. iOS开发—— UIImagePickerController获取相册和拍照
  11. WP8.1开发中关于媒体(图片)文件的生成操作,属性如何设置(内容/嵌入资源等);
  12. Cygwin-Cygwin ssh Connection closed by ::1 出错
  13. Node.js的下载、安装、配置、Hello World、文档阅读
  14. Java canlendar task
  15. Tomcat Getshell
  16. Android Studio NDK JNI动态注册本地方法
  17. 第十八节,TensorFlow中使用批量归一化(BN)
  18. C++11模版元编程
  19. httpd
  20. C#代理多样性

热门文章

  1. 由浅入深学习.NET CLR 系列:目录
  2. SpringMVC之 数据绑定-1
  3. 仿async/await(一)and Gulp:新一代前端构建利器
  4. mvc项目如何在IIS7.5
  5. Python Learing(二):Basic Image Processing 1
  6. SHELL编程笔记(二)之shell流程控制
  7. Asp.Net MVC 3
  8. [转]解决MySQL出现大量unauthenticated user的问题
  9. AngularJS框架研究(一)
  10. 关于arcengine权限的设置