CodeForces749D(Leaving Auction) 二分二分二分

博客内容介绍了CodeForces749D题目,即在竞价拍卖场景下,考虑不同人数缺席时的最高竞价者和最终价格。通过记录每个人的最高出价并排序,结合树状数组和二分查找技术,解决了在不同缺席人数情况下求解获胜者和价格的问题。
摘要由CSDN通过智能技术生成

题意: 将会有 n 个人在竞价,一共叫了 n 次价(价格递增)。一个人可以叫多次价,但不会自己压自己的价
(例如 1 1 \n 1 2 这是不会出现的),当然也就会出现有的人没叫价。
现在有 q 个询问,每个询问为
有 k 个人没来,分别为 li ,现在求最后的winner和价格。
(所有的 k 加起来 < 200000)。
思路: 考虑第一小问,如果我们把每个人叫的最高价记录,排个序,再用树状数组(由于所有的 k 加起来 < 200000,所以可以每次询问时将所有的没来的人点更新 )+二分维护有来的人中出价最高的那个人 tp1,这就相当于第一问解决。
第二问, 在第一问的基础上,把有来的人中出价最高的那个人当成没来,也就是说求出有来的人中出价次高的那个人 tp2 ,然后 再二分查找 tp1 出的钱恰好多于 tp2 出的钱的那个钱数就是答案。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstdlib>
#include <stack>
#include <vector>
#include <cstring>
#include <queue>
#define msc(X) memset(X,-1,sizeof(X))
#define ms(X) memset(X,0,sizeof(X))
typedef long long LL;
using namesp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值