二分查找,$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的更多相关文章

  1. Codeforces 749D. Leaving Auction set+二分

    D. Leaving Auction time limit per test: 2 seconds memory limit per test:256 megabytes input:standard ...

  2. codeforces 749D Leaving Auction(二分)

    题目链接:http://codeforces.com/problemset/problem/749/D 题意:就是类似竞拍,然后报价肯定要比上一个高,然后查询输入k个数表示那些人的竞拍无效, 输出最后 ...

  3. cf 749D Leaving Auction

    Leaving Auction time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  4. CF749D Leaving Auction set排序查找

    CodeForces 749D. Leaving Auction 传送门 There are n people taking part in auction today. The rules of a ...

  5. Leaving Auction

    Leaving Auction 题目链接:http://codeforces.com/contest/749/problem/D 二分 本来以为是哪种神奇的数据结构,没想到sort+lower_bon ...

  6. Codeforces 749D:Leaving Auction(set+二分)

    http://codeforces.com/contest/749/problem/D 题意:有几个人在拍卖场竞价,一共有n次喊价,有q个询问,每一个询问有一个num,接下来num个人从这次拍卖中除去 ...

  7. 【codeforces 749D】Leaving Auction

    [题目链接]:http://codeforces.com/problemset/problem/749/D [题意] 有n个人在竞价; 按照时间的顺序给出n次竞价(可能有一些人没有参加竞价); 每次竞 ...

  8. Leaving Auction CodeForces - 749D (set,贪心,模拟)

    大意: 若干个人参加拍卖会, 给定每个人出价顺序, 保证价格递增, q个询问, 给出k个人的编号, 求删除这k个人的所有出价后, 最终谁赢, 他最少出价多少. set维护每个人最后一次投票的时间, 每 ...

  9. Leaving Auction CF 749D

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

随机推荐

  1. 01.由浅入深学习.NET CLR 基础系列之CLR 的执行模型

    .Net 从代码生成到执行,这中间的一些列过程是一个有别于其他的新技术新概念,那么这是一个什么样的过程呢,有什么样的机制呢,清楚了这些基本的东西我们做.Net的东西方可心中有数.那么,CLR的执行模型 ...

  2. centOS6 php 编 imap 模

    php 编 c-client imap 客户.下载 http://www.washington.edu/imap/mirrors.html 第一步,编 c-client 官方文档说究竟有点坑,编译报错 ...

  3. DDD领域驱动设计

    DDD领域驱动设计实践篇之如何提取模型 需求说明: 省级用户可以登记国家指标 省级用户和市级用户可以登记指标分解 登记国家指标时,需要录入以下数据:指标批次.文号.面积,这里省略其他数据,下同 登记指 ...

  4. [置顶] 如何使用c3p0+spring连接oracle数据库

    1. 首先是jdbc.properties属性文件的编写,便于数据库移植: datasource.driverClassName=oracle.jdbc.driver.OracleDriver dat ...

  5. 利用Readability解决网页正文提取问题

    分享: 利用Readability解决网页正文提取问题   做数据抓取和分析的各位亲们, 有没有遇到下面的难题呢? - 如何从各式各样的网页中提取正文!? 虽然可以用SS为各种网站写脚本做解析, 但是 ...

  6. DNN简介以及安装

    开源框架DNN简介以及安装 donetnuke 是一款免费的开源cms框架,目前也有收费版,不过免费版也可以适应大家大部分的需求.我前些阵子是老板让我在20天内,做好一个官网并且发布,并且指定使用dn ...

  7. Linq无聊练习系列8---开放式并发事务,null和 DateTime,string操作练习

    /*********************开放式并发事务,null和 DateTime,string操作练习**********************************/ //所谓并发,就是 ...

  8. Algorithm lecture

    当前标签: lecture   组合数求法讲解 BLADEVIL 2014-01-08 18:59 阅读:3 评论:0     mobius反演讲解 BLADEVIL 2014-01-08 18:13 ...

  9. Webapi备忘-20140109

    r01的翻译系列:http://www.cnblogs.com/r01cn/category/428069.html 接收FROM数据 Webapi接收表单数据,如果有多个数据比如x=1&y= ...

  10. [转]http://www.russbishop.net/xcode-exception-breakpoints

    原文:http://www.russbishop.net/xcode-exception-breakpoints Many people are not aware of Xcode's powerf ...