Codeforces Round #388 (Div. 2)D. Leaving Auction

Codeforces 749D Leaving Auction 二分+Set 点击打开链接 题意;一共有n次喊价,有q个询问,每一个询问有一个num,接下来num个人从这次拍卖中除去,问对于每一个询问减掉num个人后是谁赢了拍卖,最小的价格是多少。n,q 思路:set存每个人的最大bids和编号  && vector保存每个人投的bid,先T掉num个人后 利用set自动对最大bids排序后 如果当前set size()为1时 输出vector[x]的最小即可 如果 阅读详情

题目链接:http://codeforces.com/contest/749/problem/D
Codeforces Round #388 (Div. 2) D

There are n people taking part in auction today. The rules of auction are classical. There were n bids made, though it’s not guaranteed they were from different people. It might happen that some people made no bids at all.

Each bid is define by two integers (ai, bi), where ai is the index of the person, who made this bid and bi is its size. Bids are given in chronological order, meaning bi < bi + 1 for all i < n. Moreover, participant never makes two bids in a row (no one updates his own bid), i.e.ai ≠ ai + 1 for all i < n.

Now you are curious with the following question: who (and which bid) will win the auction if some participants were absent? Consider that if someone was absent, all his bids are just removed and no new bids are added.

Note, that if during this imaginary exclusion of some participants it happens that some of the remaining participants makes a bid twice (or more times) in a row, only first of these bids is counted. For better understanding take a look at the samples.

You have several questions in your mind, compute the answer for each of them.
Input

The first line of the input contains an integer n (1 ≤ n ≤ 200 000) — the number of participants and bids.

Each of the following n lines contains two integers ai and bi (1 ≤ ai ≤ n, 1 ≤ bi ≤ 109, bi < bi + 1) — the number of participant who made the i-th bid and the size of this bid.

Next line contains an integer q (1 ≤ q ≤ 200 000) — the number of question you have in mind.

Each of next q lines contains an integer k (1 ≤ k ≤ n), followed by k integers lj (1 ≤ lj ≤ n) — the number of people who are not coming in this question and their indices. It is guarenteed that lj values are different for a single question.

It’s guaranteed that the sum of k over all question won’t exceed 200 000.
Output

For each question print two integer — the index of the winner and the size of the winning bid. If there is no winner (there are no remaining bids at all), print two zeroes.
Examples
input

6
1 10
2 100
3 1000
1 10000
2 100000
3 1000000
3
1 3
2 2 3
2 1 2

output

2 100000
1 10
3 1000

input

3
1 10
2 100
1 1000
2
2 1 2
2 2 3

output

0 0
1 10

Note

Consider the first sample:

In the first question participant number 3 is absent so the sequence of bids looks as follows:
    1 10
    2 100
    1 10 000
    2 100 000
Participant number 2 wins with the bid 100 000.
In the second question participants 2 and 3 are absent, so the sequence of bids looks:
    1 10
    1 10 000
The winner is, of course, participant number 1 but the winning bid is 10 instead of 10 000 as no one will ever increase his own bid (in this problem).
In the third question participants 1 and 2 are absent and the sequence is:
    3 1 000
    3 1 000 000
The winner is participant 3 with the bid 1 000.

题意:有个拍卖会,然后出价(出价貌似是上升的),最后说有几个出价是失效的,问最后是哪个价格竞拍到了

1 10
2 100
3 1000
1 10000
2 100000
3 1000000
比如这个,我们知道每人两次出价(价格上升),最后3出价失效,最后保留1 2,2的出价最高,输出2 10000

题意:有有许多人参加拍卖,问当假定某些人不参加的时候剩余的人当中谁是最终的赢家,输出他的编号和最终竞价,注:每个人都不能和自己竞价,即若某人连续竞价两次,以第一次价格为准。输入数据保证竞价递增。(注意这个“连续”)

题目说了 sum of k 《200000 所以可以遍历每次的k,
手残,继续拿别人的代码。

    #include <iostream>  
    #include <cstdio>  
    #include <cstring>  
    #include <map>  
    #include <set>  
    #include <vector>  
    using namespace std;  
    set<int>bk;  
    map<int,int>p,q;  
    map<int,int>::iterator it;  
    set<int>num[200005];  
    int a[200005];  
    int main()  
    {  
        int n,x,y;  
        scanf("%d",&n);  
        for(int i=0;i<n;i++)  
        {  
            scanf("%d%d",&x,&y);  
            num[x].insert(y);  
            p[x]=max(p[x],y);//这里不用map,开个数组也能实现相同功能   
        }  
        for(int i=1;i<=n;i++)  
        if(p[i])//一定要加这个判断,因为输入数据中可能某些人不会出现  
        q.insert(make_pair(p[i],i));//之所以把竞价方法前面是因为map默认按first从小到大排序,这样刚好符合我们的要求   
        int k,t1,t2;  
        scanf("%d",&x);  
        while(x--)  
        {  
            scanf("%d",&k);  
            for(int i=0;i<k;i++)  
            {  
                scanf("%d",&a[i]);  
                if(p[a[i]])  
                q.erase(p[a[i]]);  
            }  
            //for(it=q.begin();it!=q.end();it++)  
            //cout<<(*it).first<<" "<<(*it).second<<endl;  
            int cnt=q.size();  
            if(!cnt)  
            printf("0 0\n");  
            else if(cnt==1)//特判   
            {  
                it=q.end();  
                it--;  
                int t1=it->second;  
                printf("%d %d\n",t1,*num[t1].begin());  
            }  
            else  
            {  
                it=q.end();  
                it--;  
                int t1=it->second;  
                it--;  
                int t2=it->first;  
                set<int>::iterator it1=num[t1].upper_bound(t2);//这里就是'恰好大于'部分   
                printf("%d %d\n",t1,*it1);  
            }  
            for(int i=0;i<k;i++)//因为下面还有其他操作,所以要把q复原  
            if(p[a[i]])  
            q.insert(make_pair(p[a[i]],a[i]));  
        }  

    return 0;  
    }  
SpringBoot+Vue+Mysql社区医院信息平台(源码+文档) SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心... 立即下载

相关推荐

YOLOv8作物病害检测实战源码

这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。

Codeforces Round #388(Div. 2)D. Leaving Auction【二分+思维】好题~

D. Leaving Auction time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output There are n people taking part in auction today. T

mengxiang000000 933

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.csdn.net/mtl1994

Codeforces Round #388 (Div. 2)D. Leaving Auction(二分+思维)

D. Leaving Auctiontime limit per test:2 secondsmemory limit per test:256 megabytesinput:standard inputoutput:standard outputThere are n people taking part in auction today. The rules of auction are cla

妍恐龙的博客....^~^眼熟我 539

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Codeforces Round #388 (Div. 2)-D. Leaving Auction

原题链接 D. Leaving Auction time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output There are n people taking part

L. 470

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Codeforces Round #388 (Div. 2)D Leaving Auction

题目大意:        有很多人在竞价,有n次出价,由出价人编号和出价金额组成。现在有k次询问,问每次如果这些人不竞价,那么最后会是谁获胜,竞价金额是多少。输出保证了不会有同一个人两次出价,每次出价的金额也是严格递增的。 题目解法:       先用向量保存每个人的出价记录。然后将每个人最后一次的出家情况放入set,每次删除去掉的人,观察如果set为空,就输出0 0;如果只剩一个人,那就是

bigwatermlon的博客 3万+

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Codeforces Round #388 (Div. 2)D. Leaving Auction(水题呀?)

题目链接:点击打开链接 思路: 我们只要把每个人竞价的最大值存起来, 并且把每个人的所有竞价维护在一个有序数组(方便二分), 对于一组询问,  我们从大到小遍历这k个数,把不在这k个数的最终竞价最大的两个人找到(复杂度O(K)), 然后在竞价最大的那个人的set里二分第二大的人的竞价最大值就行了。 细节参见代码: #include #include #include #include

AC_Arthur的专栏 1052

ThingsBoard入门实战(七):公共发布和 UI 细节修改

公共发布和 UI 细节修改7.细节修改和公共发布一、公共发布二、UI优化下载运行修改三、下一步还可以做什么?更好的UI更丰富的系统模块 7.细节修改和公共发布 GET到新技能了,想给兄弟们演示,需要给他们每个人一个账号么? 答案肯定是:不需要! ThingsBoard 用 公共发布 解决了这个问题。 一、公共发布 首先我们来看一下路灯设备现在在谁名下? 如下图,路灯都是customerA的, 目前只有它和它的租户可以看到,其他人需要看就需要设为公有。 如图操作: 对于设备详情仪表盘,我们也需要设为公有

AIGC搞起 9119

Codeforces Round #388 (Div. 2) D. Leaving Auction

这道题主要是运用stl和二分,主要是set的运用可以练一下std。 先用vector存每个人的出价,再用一个数组和set存每个人的最高价,最后对于每一个q,把不在的人从set 里面erase掉,结束后再加进去。erase掉不在的人后,取出出价最高的两个人(set里面的最后两个人),找出价第二高的在最高的人的位置+1,就是出价最高的。

hi_just_do_it的博客 456

RK3568 MIPI屏幕启动异常:从uboot logo到黑屏的排查与修复

本文详细分析了RK3568平台MIPI屏幕在启动过程中,从uboot阶段正常显示logo到内核阶段黑屏的典型故障。通过硬件测量与软件调试,最终定位问题根源在于电源时序,并提供了在设备树中为屏幕供电的regulator节点添加`regulator-boot-on`属性的关键解决方案,有效解决了因内核启动早期电源管理导致的显示异常。

weixin_29161719的博客 541

UE5动画革命:如何用Motion Matching技术让你的游戏角色动作更流畅(附实战配置)

本文深入解析了UE5中Motion Matching技术的实战配置与应用。通过对比传统动画状态机的局限,详细阐述了如何构建动画数据库、在UE5中配置Pose Search Database及动画蓝图,并探讨了与IK融合、性能优化等进阶策略。该技术能显著提升游戏角色动作的流畅度与真实感,是下一代动画解决方案的核心。

weixin_29075633的博客 862

Codeforces Round #388 (Div. 2)D. Leaving Auction(set)

题意:有有许多人参加拍卖,问当假定某些人不参加的时候剩余的人当中谁是最终的赢家,输出他的编号和最终竞价,注:每个人都不能和自己竞价,即若某人连续竞价两次,以第一次价格为准。输入数据保证竞价递增。 思路: 我们只要把每个人竞价的最大值存起来, 并且把每个人的所有竞价维护在一个有序数组(方便二分), 对于一组询问,  我们从大到小遍历这k个数,把不在这k个数的最终竞价最大的两个人找到(复杂度O(K...

c_czl的博客 207

239号资源-simulink仿真:MATLAB/Simulink教程(PDF文档)-----已提供下载资源

电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.《《《《《《《《更多资源还请持续关注本专栏》》》》》》》《《《《《《《《更多资源还请持续关注本专栏》》》》》》》论文与完整源程序_电网论文源程序的博客-优快云博客。电网论文源程序-优快云博客。

LIANG674027206的博客 1076

Leaving Auction-一道就考set特性的题目

Codeforces Round #388 (Div. 2) D . Leaving Auction 题意很简单,就是卡时间,首先你要知道set的有序性,唯一性,查找搜索都是O(logN)的时间,由复杂度可以大概推算时间。 每个人的最大出价要数组maxprice 存起来,每个人的每一次出价用set存起来,以便找到最小价格 询问之前,先构造一个最大价格集合,set#include <

永远保持谦卑好学 466

PicoRV32 笔记 05

PicoRV32 本地总线接口

jjinl的专栏 1574

Halcon手眼标定实战:九点标定法从入门到精通(附完整代码)

本文详细介绍了Halcon环境下九点标定法的完整实现流程,从基础概念到实战技巧,帮助开发者快速掌握手眼标定技术。通过精确采集图像坐标与机械坐标,计算仿射变换矩阵,实现相机与机械臂坐标系的精确映射,适用于工业自动化中的平面定位场景。

v4w5x6的博客 411
上一篇: Codeforces Round #388 (Div. 2) C。
下一篇: Codeforces Round #381 (Div. 2) C 思维 D树上差分
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值