1071: [SCOI2007]组队

Time Limit: 1 Sec  Memory Limit: 162 MB
Submit: 1267  Solved: 392
[Submit][Status][Discuss]

Description

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

Input

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

Output

最多候选球员数目。

Sample Input

4 1 2 10
5 1
3 2
2 3
2 1

Sample Output

4

HINT

数据范围: N <= 5000 ,height和speed不大于10000。A、B、C在长整型以内。

Source

N^N的复杂度啊。。。据说暴力也可以过2333333

先膜拜一下18357大神ORZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdlib>
#include<algorithm>
using namespace std;
int n,A,B,C,maxx,minn;
struct node
{int h,v,sum;
}e[2][5005];
bool cmp1(node a,node b)
{return a.h<b.h;
}
bool cmp2(node a,node b)
{return a.sum<b.sum;
}
bool check(int id,int val)
{return (e[id][val].v<=maxx)&&(e[id][val].v>=minn);
}
int main()
{int ans=0;scanf("%d%d%d%d",&n,&A,&B,&C);for(int i=1;i<=n;i++){scanf("%d%d",&e[0][i].h,&e[0][i].v);e[0][i].sum=A*e[0][i].h+B*e[0][i].v;e[1][i]=e[0][i];}sort(e[0]+1,e[0]+1+n,cmp1);sort(e[1]+1,e[1]+1+n,cmp2);for(int i=1;i<=n;i++){minn=e[0][i].v,maxx=minn+C/B;int l=0,r=0,cnt=0;for(int j=1;j<=n;j++){while(r<n&&e[1][r+1].sum-A*e[0][j].h-B*e[0][i].v<=C){cnt+=check(1,++r);}while(l<n&&e[0][l+1].h<e[0][j].h){cnt-=check(0,++l);}ans=max(ans,cnt);}}printf("%d\n",ans);return 0;
}

  

转载于:https://www.cnblogs.com/water-full/p/4506269.html

(双指针) bzoj 1071相关推荐

  1. BZOJ 1071组队

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

  2. [BZOJ]1071 组队(SCOI2007)

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

  3. [BZOJ]1071: [SCOI2007]组队 STL优先队列

    Description NBA每年都有球员选秀环节.通常用速度和身高两项数据来衡量一个篮球运动员的基本素质.假如一支球队里 速度最慢的球员速度为minV,身高最矮的球员高度为minH,那么这支球队的所 ...

  4. CF1322B-Present【双指针】

    正题 题目链接:https://www.luogu.com.cn/problem/CF1322B 题目大意 给出nnn个数字aia_iai​求 ⨁i=1n⨁j=i+1n(ai+aj)\bigoplus ...

  5. BZOJ.3648.寝室管理(点分治 树状数组)

    BZOJ \(Description\) 求在一棵树上加一条边后,有多少条至少有\(k\)个点的路径. \(n\leq10^5\). \(Solution\) 对于一棵树的情况,可以点分治. 用树状数 ...

  6. BZOJ 1176[Balkan2007]Mokia (cdq分治,矩阵加矩阵求和)

    BZOJ 1176[Balkan2007]Mokia (cdq分治,矩阵加矩阵求和) Description 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值. ...

  7. BZOJ.1558.[JSOI2009]等差数列(线段树 差分)

    BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...

  8. S-T平面图中利用最短路求最小割(BZOJ 1001)

    BZOJ 1001: [BeiJing2006]狼抓兔子 最小割 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 现在小朋友们最喜欢 ...

  9. Leetcode 15.三数之和 双指针 or 暴力哈希

    题目链接:传送门 题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组. 暴力+ ...

最新文章

  1. Windows系统优化12个默认设置
  2. maven 可执行 jar_Maven提示:有关可执行jar的所有信息
  3. python做股票分析_利用Python进行股票投资组合分析(调试)
  4. Android 实现选中与非选中样式效果
  5. 正则表达式匹配手机4位尾号
  6. 给现有MVC 项目添加 WebAPI
  7. uml建模工具_Visual Paradigm 教程[UML]:绘制UML配置文件图
  8. 智能优化算法改进算法 -附代码
  9. 免费的3D GIS 软件,特点与应用领域介绍
  10. sdr 软件_将永远改变我们业余无线电爱好的SDR软件定义无线电技术
  11. ifix 读写mysql_[转载]vb6读取ifix实时数据库和历史数据库
  12. 吴恩达机器学习和深度学习视频和笔记
  13. 【9102年】考研还是找工作?分享看完心得体会(如果你错过了月亮,那就不要错过星星了)
  14. 室内定位技术的应用及室内定位技术的种类-新导智能
  15. 设置docker容器时间
  16. 双重差分法之安慰剂检验
  17. 红色警戒3原版V1.00基址大全
  18. 在Latex论文下方添加copyright
  19. Chapter8.3:控制系统校正的根轨迹法
  20. 2020计算机应用基础历年真题,2020北京自考计算机应用基础真题及答案

热门文章

  1. 深入理解Redis主键失效原理及实现机制
  2. Silverlight Toolkit DataGrid - 单元格内容对齐样式
  3. 手杀***病毒Trojan.Win32.Generic.11EBD5EC
  4. 波特率与比特率的关系
  5. mysql数据库映射到内存_基于共享内存的数据库映射
  6. 解决电脑没有任何图标问题(以及没有底部的任务栏)
  7. 世界上将出现一种新职业
  8. 神经网络侧枝抑制(自编码)
  9. U盘如何量产成USB-CDROM
  10. HTTP_HOST 和 SERVER_NAME 的区别