JZOJ 4772. 运输妹子
来源:互联网 发布:cms建站是什么意思 编辑:程序博客网 时间:2024/04/28 18:30
Problem
Description
小轩轩是一位非同一般的的大农(lao)场(si)主(ji),他有一大片非同一般的农田,并且坐落在一条公路旁(可以认为是数轴),在他的农田里种的东西也非同一般——不是什么水稻小麦,而是妹子。
在小轩轩的细心培育下,他的大片农田都要结出妹子啦!但是他的农田分布实在是太广阔了,他担心自己的妹子会令路过的人想入非非,于是他想要把所有农田上的妹子都集中到一个仓库里面,贮存起来。可是妹子太多,他叫来了一辆卡车,这辆卡车刚好可以装满一个农田的妹子,并且在满载的情况下,运满满一卡车妹子走1米的费用是1元。由于小轩轩技术精湛,他的每个农田产量都是一样的。即把一个农田的妹子都运到仓库费用为农田与仓库坐标差值的绝对值。理想很美好,但现实很残酷——小轩轩还没有想好在什么位置搭建他的仓库,而且他的运输费用是有限的。
请你帮忙计算一下,在什么位置搭建仓库,使得小轩轩能收获的妹子最多。(仓库的位置可与农田的位置重合,并且在公路长度范围内)。
Input
第一行三个正整数 N,L,W,分别表示农田个数、公路总长度、总钱数。
接下来 N 行,每一行描述一个农田的坐标。(可能有多个农田位于同一位置)
Output
一个整数,小轩轩最多能够收藏多少个农田的妹子。
Sample Input
5 23 18
4
6
14
18
22
Sample Output
3
Data Constraint
对于 30% 的数据,N≤1000,L≤10000。
对于 60% 的数据,N≤10000,L≤1000000。
对于 100% 的数据,N≤100000,L≤1000000000,W≤2000000000000000
Solution
我们二分答案ans,看看最优情况下能够用多少钱。
显而易见,如果我们花最少的钱,那么最优情况就是选连续ans个农田,并且仓库在中位数上。我们枚举起点,设起点为l,终点为r,中位数为mid,花费就是
Code
#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#define N 100010#define LL long long#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;LL n,l,r,mid,L,w,a[N],sum[N],ans;int i,j,k,t;bool ok(int x){ int i; LL temp,ll,rr,mmid; fo(i,1,n-x+1) { ll=i;rr=i+x-1; mmid=(ll+rr)/2; temp=((sum[rr]-sum[mmid])-a[mmid]*(rr-mmid))-((sum[mmid]-sum[ll-1])-a[mmid]*(mmid-ll+1)); if (temp<=w) return 1; } return 0;}int main(){ scanf("%lld%lld%lld",&n,&L,&w); fo(i,1,n) scanf("%lld",&a[i]); sort(a+1,a+n+1); fo(i,1,n) sum[i]=sum[i-1]+a[i]; l=1;r=n; while (l<=r) { mid=(l+r)/2; if (ok(mid)) ans=mid,l=mid+1;else r=mid-1; } printf("%lld",ans);}
- JZOJ 4772. 运输妹子
- 【JZOJ 4772】运输妹子
- 【JZOJ 4772】 运输妹子
- 【NOIP模拟】运输妹子
- 【JZOJ4772】运输妹子
- 【JZOJ 5415】 公交运输
- JZOJ 5415 公交运输
- NOIP提高组 运输妹子
- 【NOIP提高组】运输妹子
- 【NOIP2016提高A组模拟9.9】运输妹子
- 【NOIP2016提高A组模拟9.9】运输妹子
- 【NOIP2016提高A组模拟9.9】运输妹子
- 【JZOJ4772】【NOIP2016提高A组模拟9.9】运输妹子
- 【NOIP2016提高A组模拟9.9】运输妹子
- JZOJ4772. 【NOIP2016提高A组模拟9.9】运输妹子
- 运输妹子【NOIP2016提高A组模拟9.10】
- [jzoj]1345. 物流运输(图上DP)
- 【JZOJ 5415】【NOIP2017提高A组集训10.22】公交运输
- Patching Array
- 各种排序算法的分析及java实现
- 摄像头图像失真校正
- Html登录弹出框的实现
- 44个Javascript变态题解析
- JZOJ 4772. 运输妹子
- java基础02
- 对动态数组的操作与算法
- 系统权限
- bzoj 4548: 小奇的糖果(线段树+树状数组)
- dom4j读取某个元素的某个属性
- hdoj 5876 Sparse Graph(BFS补图)
- leetCode练习(4)
- Python 学习中,特别知识点记录