codeforces 749D Leaving Auction(二分)
题目链接:http://codeforces.com/problemset/problem/749/D
题意:就是类似竞拍,然后报价肯定要比上一个高,然后查询输入k个数表示那些人的竞拍无效,
输出最后谁竞拍到了花了多少钱。
比较简单的二分只要找到删除无效人后最大的两个人然后用第二大的那个人的最大竞拍价二分查找
最大的那个人中的竞拍价,然后的得到的第一个大于等于的值即可。
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int M = 2e5 + 10;
vector<int>vc[M];
int cp[M] , vis[M] , change[M];
struct TnT {
int num , val;
}s[M];
bool cmp(TnT a , TnT b) {
return a.val > b.val;
}
int maxn , maxnnext , temp;
void find() {
int flag = 0;
for(int i = 0 ; i < temp ; i++) {
if(flag == 2) {
break;
}
if(!vis[s[i].num]) {
if(flag == 0) {
maxn = s[i].num;
flag++;
continue;
}
if(flag == 1) {
maxnnext = s[i].num;
flag++;
continue;
}
}
}
}
int binsearch(int pos , int val) {
int l = 0 , r = vc[pos].size() - 1;
while(l <= r) {
int mid = (l + r) >> 1;
if(vc[pos][mid] >= val)
r = mid - 1;
else {
l = mid + 1;
}
}
return r + 1;
}
int main() {
int n;
cin >> n;
for(int i = 0 ; i < n ; i++) {
int x , y;
cin >> x >> y;
vc[x].push_back(y);
cp[x] = y;
}
temp = 0;
for(int i = 1 ; i <= M - 10 ; i++) {
if(cp[i] != 0) {
s[temp].num = i;
s[temp++].val = cp[i];
}
}
sort(s , s + temp , cmp);
int q;
cin >> q;
while(q--) {
int k;
cin >> k;
for(int i = 1 ; i <= k ; i++) {
cin >> change[i];
vis[change[i]] = 1;
}
maxn = 0 , maxnnext = 0;
find();
int gg = cp[maxnnext];
int ans = binsearch(maxn , gg);
if(maxn == 0) {
cout << 0 << ' ' << 0 << endl;
}
else if(maxnnext == 0) {
cout << maxn << ' ' << vc[maxn][0] << endl;
}
else {
cout << maxn << ' ' << vc[maxn][ans] << endl;
}
for(int i = 1 ; i <= k ; i++) {
vis[change[i]] = 0;
change[i] = 0;
}
}
return 0;
}
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
二分查找,$set$. 对于某一次询问,如果把人删光了,那么输出$0$ $0$. 如果只剩下$1$个人,那么输出那个人喊的最低价格. 如果剩下的人数有大于等于两个, 这时最底下出现的情景必然是红色部分 ...
- 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 1199C]MP3(离散化+二分答案)
[Codeforces 1199C]MP3(离散化+二分答案) 题面 给出一个长度为n的序列\(a_i\)和常数I,定义一次操作[l,r]可以把序列中<l的数全部变成l,>r的数全部变成r ...
- 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维护每个人最后一次投票的时间, 每 ...
随机推荐
- Spring源码解析——循环依赖的解决方案
一.前言 承接<Spring源码解析--创建bean>.<Spring源码解析--创建bean的实例>,我们今天接着聊聊,循环依赖的解决方案,即创建bean的ObjectFac ...
- codeforces 576 div2 A-D题解
A题 Description 题目链接: https://codeforces.com/contest/1199/problem/A 题意: 给定长度为n(1≤n≤100000)的一个序列a,以及两个 ...
- python 获取大乐透中奖结果
实现思路: 1.通过urllib库爬取http://zx.500.com/dlt/页面,并过滤出信息 2.将自己的买的彩票的号与开奖号进行匹配,查询是否中奖 3.将中奖结果发生到自己邮箱 caipia ...
- HiveQL DDL 常用QL示例资料
hive-version2.1.1 DDL操作 Create/Drop/Alter/Use Database 创建数据库 //官方指导 CREATE (DATABASE|SCHEMA) [IF NOT ...
- 【原创】JAVA进程突然消失的原因?
引言 值此七夕佳节,烟哥放弃了无数妹纸的邀约,坐在电脑面前码字,就是为了给读者带来新的知识,这是一件伟大的事业! 好吧,实际情况是没人约.为了化解尴尬,我决定卖力写文章,嗯,一定是我过于屌丝! 好了, ...
- android ——活动
活动(Activity)主要用于和用户进行交互,是一种可以包含用户界面的组件. 1.手动创建活动 右击com.example.administrator.exp5→New→Activity→Empty ...
- Notepad++编辑器——Verilog、代码片段、F6编译
Notepad++是一款精致小巧的编辑器,自带Verilog语法识别功能,插件也挺好用的.这里陈列一下我的设置. 版本:Notepad++ 7.6.6 ,32位 //================= ...
- (三十)c#Winform自定义控件-文本框(三)
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- Spring Cloud与Dubbo的完美融合之手「Spring Cloud Alibaba」
很早以前,在刚开始搞Spring Cloud基础教程的时候,写过这样一篇文章:<微服务架构的基础框架选择:Spring Cloud还是Dubbo?>,可能不少读者也都看过.之后也就一直有关 ...
- IDEA部署 java Web项目 常见配置
前言 从eclipse上转到idea上,第一次使用idea部署web项目,真折磨人,写了一个 helloworld 5分钟,了解idea部署web项目5小时. 我使用的是idea 2019.1版本,其 ...