CodeForces 749D Leaving Auction
二分查找,$set$。
对于某一次询问,如果把人删光了,那么输出$0$ $0$。
如果只剩下$1$个人,那么输出那个人喊的最低价格。
如果剩下的人数有大于等于两个,

这时最底下出现的情景必然是红色部分由一个人喊,紫色部分由另一个人喊。
这两个人分别是喊价最高价次高者和最高者,并且红色部分最后一个位置的下一个位置就是答案。因此只需在获取两个人的信息后,在最高者喊价序列中二分即可。
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
#include<iostream>
#include<set>
using namespace std; const int maxn=;
int n,q; struct X
{
int id,val;
}s[maxn]; struct XX{
int a,b;
XX () { }
XX(int A,int B)
{
a=A;
b=B;
} bool operator < (const XX &aa) const
{
return b>aa.b;
}
}; XX fir,sec; vector<int> v[maxn];
set<XX> h; int tmp[maxn],mn[maxn],mx[maxn]; bool check(int x)
{
int tt=v[fir.a][x];
if(s[tt].val<sec.b) return ;
return ;
} int main()
{
scanf("%d",&n);
for(int i=;i<=;i++) mx[i]=,mn[i]=; for(int i=;i<=n;i++)
{
scanf("%d%d",&s[i].id,&s[i].val);
v[s[i].id].push_back(i);
mx[s[i].id]=max(mx[s[i].id],s[i].val);
mn[s[i].id]=min(mn[s[i].id],s[i].val);
} for(int i=;i<=;i++)
{
if(mx[i]==) continue;
h.insert(XX(i,mx[i]));
} scanf("%d",&q);
for(int i=;i<=q;i++)
{
int k; scanf("%d",&k);
for(int j=;j<=k;j++) scanf("%d",&tmp[j]);
for(int j=;j<=k;j++)
{
if(mx[tmp[j]]==) continue;
h.erase(XX(tmp[j],mx[tmp[j]]));
} if(h.size()==)
{
printf("0 0\n");
}
else if(h.size()==)
{
XX ans = *h.begin();
printf("%d %d\n",ans.a,mn[ans.a]);
}
else
{
set<XX>::iterator iter;
int cnt=; for(iter = h.begin() ; iter != h.end(); iter++)
{
cnt++;
if(cnt==) fir = *iter;
else if(cnt==) { sec = *iter; break; }
} int L=,R=v[fir.a].size()-;
int ans; while(L<=R)
{
int mid=(L+R)/;
if(check(mid)) ans=mid,R=mid-;
else L=mid+;
} int tt=v[fir.a][ans];
printf("%d %d\n",s[tt].id,s[tt].val); } for(int j=;j<=k;j++)
{
if(mx[tmp[j]]==) continue;
h.insert(XX(tmp[j],mx[tmp[j]]));
}
}
return ;
}
CodeForces 749D Leaving Auction的更多相关文章
- Codeforces 749D. Leaving Auction set+二分
D. Leaving Auction time limit per test: 2 seconds memory limit per test:256 megabytes input:standard ...
- codeforces 749D Leaving Auction(二分)
题目链接:http://codeforces.com/problemset/problem/749/D 题意:就是类似竞拍,然后报价肯定要比上一个高,然后查询输入k个数表示那些人的竞拍无效, 输出最后 ...
- cf 749D Leaving Auction
Leaving Auction time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- CF749D Leaving Auction set排序查找
CodeForces 749D. Leaving Auction 传送门 There are n people taking part in auction today. The rules of a ...
- Leaving Auction
Leaving Auction 题目链接:http://codeforces.com/contest/749/problem/D 二分 本来以为是哪种神奇的数据结构,没想到sort+lower_bon ...
- Codeforces 749D:Leaving Auction(set+二分)
http://codeforces.com/contest/749/problem/D 题意:有几个人在拍卖场竞价,一共有n次喊价,有q个询问,每一个询问有一个num,接下来num个人从这次拍卖中除去 ...
- 【codeforces 749D】Leaving Auction
[题目链接]:http://codeforces.com/problemset/problem/749/D [题意] 有n个人在竞价; 按照时间的顺序给出n次竞价(可能有一些人没有参加竞价); 每次竞 ...
- Leaving Auction CodeForces - 749D (set,贪心,模拟)
大意: 若干个人参加拍卖会, 给定每个人出价顺序, 保证价格递增, q个询问, 给出k个人的编号, 求删除这k个人的所有出价后, 最终谁赢, 他最少出价多少. set维护每个人最后一次投票的时间, 每 ...
- Leaving Auction CF 749D
题目:http://codeforces.com/problemset/problem/749/D 题目大意: 有n个人竞拍,也有n个叫牌,一个人可以有多个叫价牌,但也可能有一些人根本不叫价 每个叫牌 ...
随机推荐
- 01.由浅入深学习.NET CLR 基础系列之CLR 的执行模型
.Net 从代码生成到执行,这中间的一些列过程是一个有别于其他的新技术新概念,那么这是一个什么样的过程呢,有什么样的机制呢,清楚了这些基本的东西我们做.Net的东西方可心中有数.那么,CLR的执行模型 ...
- centOS6 php 编 imap 模
php 编 c-client imap 客户.下载 http://www.washington.edu/imap/mirrors.html 第一步,编 c-client 官方文档说究竟有点坑,编译报错 ...
- DDD领域驱动设计
DDD领域驱动设计实践篇之如何提取模型 需求说明: 省级用户可以登记国家指标 省级用户和市级用户可以登记指标分解 登记国家指标时,需要录入以下数据:指标批次.文号.面积,这里省略其他数据,下同 登记指 ...
- [置顶] 如何使用c3p0+spring连接oracle数据库
1. 首先是jdbc.properties属性文件的编写,便于数据库移植: datasource.driverClassName=oracle.jdbc.driver.OracleDriver dat ...
- 利用Readability解决网页正文提取问题
分享: 利用Readability解决网页正文提取问题 做数据抓取和分析的各位亲们, 有没有遇到下面的难题呢? - 如何从各式各样的网页中提取正文!? 虽然可以用SS为各种网站写脚本做解析, 但是 ...
- DNN简介以及安装
开源框架DNN简介以及安装 donetnuke 是一款免费的开源cms框架,目前也有收费版,不过免费版也可以适应大家大部分的需求.我前些阵子是老板让我在20天内,做好一个官网并且发布,并且指定使用dn ...
- Linq无聊练习系列8---开放式并发事务,null和 DateTime,string操作练习
/*********************开放式并发事务,null和 DateTime,string操作练习**********************************/ //所谓并发,就是 ...
- Algorithm lecture
当前标签: lecture 组合数求法讲解 BLADEVIL 2014-01-08 18:59 阅读:3 评论:0 mobius反演讲解 BLADEVIL 2014-01-08 18:13 ...
- Webapi备忘-20140109
r01的翻译系列:http://www.cnblogs.com/r01cn/category/428069.html 接收FROM数据 Webapi接收表单数据,如果有多个数据比如x=1&y= ...
- [转]http://www.russbishop.net/xcode-exception-breakpoints
原文:http://www.russbishop.net/xcode-exception-breakpoints Many people are not aware of Xcode's powerf ...