bzoj 2600: [Ioi2011]ricehub
2600: [Ioi2011]ricehub
Description
乡间有一条笔直而长的路称为“米道”。沿着这条米道上 R 块稻田,每块稻田的坐标均
为一个 1 到 L 之间(含 1 和 L)的整数。这些稻田按照坐标以不减的顺序给出,即对于 0 ≤ i <
R,稻田 i 的坐标 X[i]满足 1 ≤ X[0] ≤ ... ≤ X[R-1] ≤ L。
注意:可能有多块稻田位于同一个坐标上。
我们计划建造一个米仓用于储存尽可能多的稻米。和稻田一样,米仓将建在米道上,其
坐标也是一个 1 到 L 之间的整数(含 1 和 L)。这个米仓可以建在满足上述条件的任一个位
置上,包括那些原来已有一个或多个稻田存在的位置。
在收获季节,每一块稻田刚好出产一滿货车的稻米。为了将这些稻米运到米仓,需要雇
用一位货车司机来运米。司机的收费是每一满货车运送一个单位的距离收取 1 元。換言之,
将稻米从特定的稻田运到米仓的费用在数值上等于稻田坐标与米仓坐标之差的绝对值。
不幸的是,今年预算有限,我们至多只能花费 B 元运费。你的任务是要帮我们找出一个
建造米仓的位置,可以收集到尽可能多的稻米。
Input
第一行 三个整数 R L B
接下来R行 每行一个整数 表示X[i]
Output
一个整数 最多稻米数
Sample Input
1
2
10
12
14
Sample Output
HINT
1 ≤ R ≤ 100,000
1 ≤ L ≤ 1,000,000,000
#include<stdio.h>
#include<iostream>
using namespace std;
#define ll long long
int n,m,i,mid,l,r,x,L,R,a[100005];
ll s,ans,B;
inline void read(int &v){char ch,fu=0;for(ch='*'; (ch<'0'||ch>'9')&&ch!='-'; ch=getchar());if(ch=='-') fu=1, ch=getchar();for(v=0; ch>='0'&&ch<='9'; ch=getchar()) v=v*10+ch-'0';if(fu) v=-v;
}
int main()
{cin>>n>>m>>B;for(i=1;i<=n;i++) read(a[i]);l=0;r=n;while(l<=r){mid=(l+r)>>1;s=0;x=mid/2+1;L=1;R=mid;for(i=1;i<x;i++) s+=a[x]-a[i];for(i=x+1;i<=mid;i++) s+=a[i]-a[x];ans=s;for(i=2;i<=n-mid+1;i++){s-=a[x]-a[L];s+=(ll)(a[x+1]-a[x])*(x-L);s+=(ll)(a[x]-a[x+1])*(R-x-1);s+=a[R+1]-a[x+1]-a[x+1]+a[x];ans=min(ans,s);L++;R++;x++;}if(ans<=B) l=mid+1;else r=mid-1;}cout<<r;return 0;
}
转载于:https://www.cnblogs.com/lwq12138/p/5671428.html
bzoj 2600: [Ioi2011]ricehub相关推荐
- bzoj 2599: [IOI2011]Race(树的点分治)
2599: [IOI2011]Race Time Limit: 70 Sec Memory Limit: 128 MB Submit: 3862 Solved: 1144 [Submit][Sta ...
- BZOJ 2599: [IOI2011]Race
点分治模板 #include<cstdio> #include<algorithm> using namespace std; int cnt,n,K,ans,N,root,F ...
- 2600: [Ioi2011]ricehubh
Description 乡间有一条笔直而长的路称为"米道".沿着这条米道上 R 块稻田,每块稻田的坐标均 为一个 1 到 L 之间(含 1 和 L)的整数.这些稻田按照坐标以不减的 ...
- BZOJ 2599: [IOI2011]Race 点分治题解
Time Limit: 70 Sec Memory Limit: 128 MB Submit: 3811 Solved: 1129 Description 给一棵树,每条边有权.求一条简单路径,权值和 ...
- [颓废史]蒟蒻的刷题记录
QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...
- 一句话题解(20180210~)
2.9 BZOJ 2006 [NOI2010]超级钢琴.这道题目几天之前就做了.做法是固定右端点,左端点在ST表上走,走法其实就是笛卡尔树的走法.完结撒花! BZOJ 1218 [HNOI2003]激 ...
- IOI2011 BZOJ2600 ricehub
BZOJ 分析 直接用两个指针扫,中位数就是放米仓的位置. 代码 #include <cstdio> #include <cstring> #include <iostr ...
- 【BZOJ】2599: [IOI2011]Race 点分治
[题意]给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, K <= 1000000.注意点从0开始编号,无解输出-1. [算法]点分治 [题解] ...
- BZOJ 3993 Luogu P3324 [SDOI2015]星际战争 (最大流、二分答案)
字符串终于告一段落了! 题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=3993 (luogu) https://www.l ...
最新文章
- Html的一些小东西
- 服务发现与健康监测框架Consul-DNS转发的应用
- java Date获取 年月日时分秒
- api 数据gzip压缩_如何使用GZip和Jersey压缩Java REST API中的响应
- 大数据“高烧不断”,“得数据者得天下”的关键在哪?
- 强强合体:Docker版Kali Linux发布
- springboot自动配置_揭秘SpringBoot自动化配置
- ThinkPHP连接sqlserver,错误11001
- 编程实现 带符号减法溢出判断
- Ruby设计模式透析之 —— 策略(Strategy)
- vue中使用axios发送请求(二)
- css鼠标拖拉卡顿_66个值得收藏的CSS开发技巧
- java socket小游戏_Java Socket如何实现猜数字小游戏 Java Socket实现猜数字小游戏代码示例...
- 【思特奇杯·云上蓝桥-算法集训营】第1周----真题汇总+思路分析
- xp系统dns服务器异常,电脑dns异常怎么修复,电脑dns异常修复方法介绍
- 直角坐标和求坐标的转换详解-关于球坐标转换为直角坐标正负号相反问题
- 全屏背景图移动端滚动时白底问题
- Calendar获取当前季度、月、周的开始时间结束时间
- 浅谈学习编程语言的心得与体会
- 个人作品展示(开源)