博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019杭电暑期多校第十场 E:Welcome Party(思维)
阅读量:3900 次
发布时间:2019-05-23

本文共 859 字,大约阅读时间需要 2 分钟。

【题解】

题意:n个学生分别拥有歌唱能力xi和说相声能力yi,每个人都必须选一个参加,节目的效果等于参加学生中这个才艺最大的能力值,最小化两个界节目的效果差值并输出这个值。

思路:按xi降序排序,从大到小枚举每个值作为歌唱界面的最大值,那么x大于当前值的学生必然要选择说相声,所以我们可以用b记录一定要说相声的能力最大值,那么x小于当前值的学生只有y大于b才有影响答案的可能。我们可以用一个multiset维护当前可选的y值,如果最大的y值都小于a(当前x值),当然前提是大于b,那么答案显然为a-可选最大y值;否则二分寻找大于等于a的y值,更新最优答案,如果这个y值不是最小可选的值那么要判断上一个y值是否能影响答案。

【代码】

#include 
using namespace std;const int maxn=1e5+10;#define ll long longstruct p{ ll x,y;}f[maxn];bool cmp(p a,p b){return a.x>b.x;}multiset
se;multiset
::iterator it;int main(){ int T; scanf("%d",&T); while(T--){ se.clear(); int n; scanf("%d",&n); for(int i=0;i
b){ if(*it
b) ans=min(ans,abs(a-*it)); } } } b=max(b,f[i].y); } printf("%lld\n",ans); } return 0;}

 

转载地址:http://gqfen.baihongyu.com/

你可能感兴趣的文章
《从Paxos到ZooKeeper分布式一致性原理与实践》学习知识导图
查看>>
Java基础面试题(一) (2020持续更新)
查看>>
JAVA人事管理系统
查看>>
Dubbo面试题(关注小R持续更新)
查看>>
JAVA仿微博系统(JAVA毕业设计含源码和运行教程)
查看>>
24BITBMP位图的文件结构及创建
查看>>
如何在自定义控件中获得width和height?
查看>>
Android UI开发专题之界面设计【基础API】
查看>>
ejarmaker: jar 、java类的加密工具
查看>>
配置NFS实现Linux服务器之间的文件共享
查看>>
PostgreSQL连接池pgbouncer的使用
查看>>
Kryo序列化进阶学习: 加密数据
查看>>
swift 3.0 数组赋值
查看>>
用C#通过888-TT打印中文标签
查看>>
sendmail 出现 My unqualified host name的解决办法
查看>>
彻底解决lazarus安装组件后烦人的编译时单元找不到的问题!
查看>>
Delphi的参数修饰const/var/output 与C++的对应关系
查看>>
C++ free与delete区别
查看>>
VC的字符串转换atlconv的使用
查看>>
Twitter的分布式自增ID算法snowflake (Java版)
查看>>