Description

  NBA每年都有球员选秀环节。通常用速度和身高两项数据来衡量一个篮球运动员的基本素质。假如一支球队里
速度最慢的球员速度为minV,身高最矮的球员高度为minH,那么这支球队的所有队员都应该满足: A * ( height
– minH ) + B * ( speed – minV ) <= C 其中A和B,C为给定的经验值。这个式子很容易理解,如果一个球队的
球员速度和身高差距太大,会造成配合的不协调。 请问作为球队管理层的你,在N名选秀球员中,最多能有多少名
符合条件的候选球员。

Input

  第一行四个数N、A、B、C 下接N行每行两个数描述一个球员的height和speed

Output

  最多候选球员数目。

吐槽:

我的方法复杂度为n2lognn^2logn,nn为20002000,竟然可以过……

代码:

#include<cstdio>
#include<cstring>
#include<queue>
#include<iostream>
#include<algorithm>
using namespace std;
#define LL long long
LL A,B,C;
int N;
struct player
{LL height,speed,val;bool operator <(const player a) const {return val<a.val;}
}a[5010];
bool cmp(player x,player y){return x.speed>y.speed;}
priority_queue<LL>q;
LL ans=1LL;
int main()
{scanf("%d%lld%lld%lld",&N,&A,&B,&C);for(int i=1;i<=N;i++){scanf("%lld%lld",&a[i].height,&a[i].speed);a[i].height*=A;a[i].speed*=B;a[i].val=a[i].height+a[i].speed;}sort(a+1,a+1+N,cmp);for(int i=1;i<=N;i++)//枚举当前height的最小值 {LL minh=a[i].height,mins=a[i].speed;while(!q.empty())q.pop();q.push(a[i].val);for(int j=1;j<=N;j++)//枚举jif(j!=i&&a[j].height>=a[i].height){mins=min(mins,a[j].speed);if(a[i].val>C+mins+minh)break;//因为minh+C不会变,而mins单调递减,所以可以breakwhile(!q.empty()&&q.top()>C+mins+minh)q.pop();//踢人 if(a[j].val<=C+mins+minh)//判断j是否可以加入,可以则更新答案 {q.push(a[j].val);ans=max(ans,(LL)(q.size()));}}}printf("%lld",ans);
}

[BZOJ]1071: [SCOI2007]组队 STL优先队列相关推荐

  1. 1071: [SCOI2007]组队

    1071: [SCOI2007]组队 Time Limit: 3 Sec   Memory Limit: 128 MB Submit: 1763   Solved: 546 [ Submit][ St ...

  2. (双指针) bzoj 1071

    1071: [SCOI2007]组队 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 1267  Solved: 392 [Submit][Status ...

  3. BZOJ 1977: [BeiJing2010组队]次小生成树(Kruskal+树上倍增)

    1977: [BeiJing2010组队] 次小生成树 Tree Time Limit: 10 Sec Memory Limit: 512 MB Description 小 C 最近学了很多最小生成树 ...

  4. stl优先队列定义可以吗_C ++ STL | 用户定义的优先级队列比较器

    stl优先队列定义>可以吗 In this article, we are going to see how to write your comparator function for prio ...

  5. STL优先队列实现堆(模板 附力扣题目)

    讲解视频:https://www.bilibili.com/video/BV12i4y1f7ky/ 堆的本质 堆是一种特殊的完全二叉树.每一个节点的值都大于等于或者小于等于其孩子节点的值. 堆的操作时 ...

  6. [BZOJ]1071 组队(SCOI2007)

    一道比较NB的套路题. Description NBA每年都有球员选秀环节.通常用速度和身高两项数据来衡量一个篮球运动员的基本素质.假如一支球队里速度最慢的球员速度为minV,身高最矮的球员高度为mi ...

  7. BZOJ 1071组队

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1071 题目很好,居然写了很久,题解找了真多: 主要两种做法: O(n^2lgn),通过优先 ...

  8. C++ STL 优先队列

    //优先队列 //Priority_queue //STL #include<iostream> #include<cstdio> #include<cstdlib> ...

  9. BZOJ 1070: [SCOI2007]修车(最小费用最大流)

    建图很神奇..建完图其实就是裸的费用流了.. -------------------------------------------------------------- #include<cs ...

最新文章

  1. matlab中的containers.Map()
  2. st-link和jlink调试stm32接线注意事项
  3. AI创想秀,邂逅“华为云ModelArts”征文大赛——第一次收官
  4. 在基于Jetty Fast CGI Proxy和php-fpm下配置Discuz
  5. sharepoint部件webparth关闭找回的方法
  6. 推荐系统的封闭和禁锢问题
  7. 【王俊杰de人工智能实战课】第7次作业2
  8. sparkr基本操作1
  9. 第二次项目冲刺(Beta阶段)--第五天
  10. 阿里云数据盘分区并挂载
  11. 墨盒注墨后出现断线或堵头的处理方法
  12. 推荐一个商业级saas开源小程序电商java项目
  13. AutoCAD实用功能之查看xdata扩展属性
  14. 3月28日服务器维护,4月28日服务器例行维护公告
  15. ArcGIS拓扑功能的应用:将点的数据落入面内
  16. psd导出jpg太大_为什么我最近PS存出来 的JPG图片都很大
  17. 玩转视频类信息流广告平台,投放技巧及运营思路看这里
  18. 手机构建Linux环境,Linux手机DIY.构建统一安装包
  19. 运动耳机排行榜10强,运动人士必备的几款运动耳机分享
  20. Linux如何制作efi启动盘,教你制作macOS+Ubuntu+WindowsPE超级启动盘(仅支持UEFI)

热门文章

  1. PostgreSQL 11 1000亿 tpcb、1000W tpcc 性能测试 - on 阿里云ECS + ESSD (含quorum based 0丢失多副本配置与性能测试)...
  2. uefi怎么念_UEFI是什么,看完您就全明白了
  3. uefi启动解析:由原理到实例
  4. Datadog 笔记
  5. 基于WIFI无线组网的水雨情远程监测预警系统
  6. (原)hisi3531立体声pcm实现播放方式
  7. 推荐一个很不错的桌面便笺工具magic notes
  8. OJ每日一练——小青蛙上台阶
  9. 通过Unity2D独立开发一款瓷砖式RPG游戏需要学习哪些知识?
  10. 微信新出“一键拒收”功能!公众号主怎么办?