【bzoj1071】[SCOI2007]组队
sum= A*h+B*s排序
然后枚举height和speed的最小值
然后用两个指针:先枚举speed最小值,然后一边枚举v的最小值一边查询符合条件的人数。
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std; typedef long long LL; #define N 10010 struct data
{
LL h,s,sum;
}x[N],y[N]; LL n,A,B,C;
LL minn,maxn;
LL ans,cnt,l,r; LL getLL()
{
LL x=0,f=1;char ch=getchar();
while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
} LL cmp1(const data &a,const data &b)
{
return a.h<b.h;
} LL cmp2(const data &a,const data &b)
{
return a.sum<b.sum;
} bool check1(LL p)
{
return y[p].s<=maxn && y[p].s>=minn;
} bool check2(LL p)
{
return x[p].s<=maxn && x[p].s>=minn;
} int main()
{
n=getLL(),A=getLL(),B=getLL(),C=getLL();
for (LL i=1;i<=n;i++)
{
x[i].h=getLL();
x[i].s=getLL();
x[i].sum=A*x[i].h+B*x[i].s;
y[i]=x[i]; }
sort(x+1,x+n+1,cmp1);
sort(y+1,y+n+1,cmp2);
for (LL i=1;i<=n;i++)
{
minn=x[i].s;
maxn=minn+C/B;
l=r=cnt=0;
for (LL j=1;j<=n;j++)
{
while (r<n && y[r+1].sum<=A*x[j].h+B*x[i].s+C)
r++,cnt+=check1(r);
while (l<n && x[l+1].h<x[j].h)
l++,cnt-=check2(l);
ans=max(ans,cnt);
}
}
printf("%lld\n",ans);
return 0;
}
【bzoj1071】[SCOI2007]组队的更多相关文章
- bzoj1071[SCOI2007]组队
1071: [SCOI2007]组队 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 2472 Solved: 792[Submit][Status][ ...
- BZOJ1071: [SCOI2007]组队【双指针】【思维好题】
Description NBA每年都有球员选秀环节.通常用速度和身高两项数据来衡量一个篮球运动员的基本素质.假如一支球队里速度最慢的球员速度为minV,身高最矮的球员高度为minH,那么这支球队的所有 ...
- 【BZOJ1071】[SCOI2007]组队(神仙题)
[BZOJ1071][SCOI2007]组队(神仙题) 题面 BZOJ 洛谷 题解 首先把式子整理一下,也就是\(A*h+B*v\le C+A*minH+B*minV\) 我们正常能够想到的做法是钦定 ...
- BZOJ 1071 [SCOI2007]组队
1071: [SCOI2007]组队 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1330 Solved: 417[Submit][Status][ ...
- 1071: [SCOI2007]组队
1071: [SCOI2007]组队 https://lydsy.com/JudgeOnline/problem.php?id=1071 分析: dp+单调性. A*(hi–minH)+B*(si–m ...
- [SCOI2007]组队 差分
题面:[SCOI2007]组队 题解: 一开始固定H然后找性质找了很久也没有找到任何有用的东西...... 然后大佬告诉我一个神奇的方法... 首先我们化一波式子: 设$H$表示高度的最小值,$V$表 ...
- BZOJ1071 [SCOI2007]压缩 其他
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1071 题意概括 有两个序列a[1..n], b[1..n],其编号为1..n,设为s序列.现在我们 ...
- 1071: [SCOI2007]组队 - BZOJ
Description NBA每年都有球员选秀环节.通常用速度和身高两项数据来衡量一个篮球运动员的基本素质.假如一支球队里速度最慢的球员速度为minV,身高最矮的球员高度为minH,那么这支球队的所有 ...
- BZOJ.1071.[SCOI2007]组队(思路)
题目链接 三个限制: \(Ah-AminH+Bv-BminV\leq C\ \to\ Ah+Bv\leq C+AminH+BminV\) \(v\geq minV\) \(h\geq minH\) 记 ...
随机推荐
- Android API Guides 安卓API指导----第一部分:Introduction(介绍)
第一部分: Introduction(介绍) 目录包含:APP Fundamentals (应用程序基础) Device Compatibility(设备兼容性) System Perm ...
- Java学习之流Stream理解(一)
缓存可以说是I/O的一种性能优化.缓存流为I/O流增加了内存缓冲区.有了缓冲区,使得在流上执行skip().mark()和reset()方法都称为可能. 1.BufferedInputStream 类 ...
- zoj 2736 Daffodil number
Daffodil number Time Limit: 2 Seconds Memory Limit: 65536 KB The daffodil number is one of the ...
- python 快排,堆排,归并
#归并排序 def mergeSort(a,L,R) : if(L>=R) : return mid=((L+R)>>1) mergeSort ...
- vue移动端头像上传,不大于50K
先看效果: 稍加说明一下:第一张图是user.vue,第二张图是点击头像出现的系统自带上传文件格式(安卓和IOS不一样),第三张图是cropper组件(我单独设置的),第四张图是上传完成的user.v ...
- WebService流行框架CXF
CXF官方网址:http://cxf.apache.org/ CXF官方网址:官网学习地址:http://cxf.apache.org/docs/index.html 官网下载cxf压缩文件: ...
- 【Ural1297】Palindrome(后缀数组)
题意:求一个字符串的最长回文子串 n<=1000 思路:这是一道论文题 需要注意的细节: 1.奇偶分类 2.中间的分割符与最后的附加字母都是最小值,但两者不能相同,否则height可能会出现问题 ...
- msp430项目编程26
msp430中项目---串行存储器接口 1.I2C工作原理 2.I2C通信协议 3.代码(显示部分) 4.代码(功能实现) 5.项目总结 msp430项目编程 msp430入门学习
- putty 配置
http://blog.sanctum.geek.nz/putty-configuration/ PuTTY configuration Posted on December 22, 2012 PuT ...
- 一段曲折的copy路程
cp 的时候出现:-bash: /bin/cp: Argument list too longcp ./*.swf /www/img/html/xxx/action/ 解决办法:find ./ -n ...