博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【NOIP2016提高A组模拟9.9】运输妹子
阅读量:4959 次
发布时间:2019-06-12

本文共 1049 字,大约阅读时间需要 3 分钟。

题目

小轩轩是一位非同一般的的大农(lao)场(si)主(ji),他有一大片非同一般的农田,并且坐落在一条公路旁(可以认为是数轴),在他的农田里种的东西也非同一般——不是什么水稻小麦,而是妹子。

在小轩轩的细心培育下,他的大片农田都要结出妹子啦!但是他的农田分布实在是太广阔了,他担心自己的妹子会令路过的人想入非非,于是他想要把所有农田上的妹子都集中到一个仓库里面,贮存起来。可是妹子太多,他叫来了一辆卡车,这辆卡车刚好可以装满一个农田的妹子,并且在满载的情况下,运满满一卡车妹子走1米的费用是1元。由于小轩轩技术精湛,他的每个农田产量都是一样的。即把一个农田的妹子都运到仓库费用为农田与仓库坐标差值的绝对值。理想很美好,但现实很残酷——小轩轩还没有想好在什么位置搭建他的仓库,而且他的运输费用是有限的。
请你帮忙计算一下,在什么位置搭建仓库,使得小轩轩能收获的妹子最多。(仓库的位置可与农田的位置重合,并且在公路长度范围内)。

分析

易得对于连续的x个农田,

最小的花费一定是最中间的点。
然后二分ans,
在数轴上枚举含ans个点的区间。
随便水水就可以了。

#include 
#include
#include
#include
#include
#include
#include
const long long maxlongint=2147483647;const int mo=1000000007;const int N=100005;using namespace std;long long a[N],sum[N],n,m,w;bool ok(int x){ long long ans=2147483647,k; ans*=1000000; for(int i=1;i<=n-x+1;i++) { int l=i,r=i+x-1; k=0; int mid=(r+l)/2; if(x%2) { k=sum[r]-sum[mid-1]*2+sum[l-1]-a[mid]; } else { k=sum[r]-sum[mid]*2+sum[l-1]; } if(k

转载于:https://www.cnblogs.com/chen1352/p/9048134.html

你可能感兴趣的文章
Git 笔记 - section 1
查看>>
HDU6409 没有兄弟的舞会
查看>>
2018 Multi-University Training Contest 10 - TeaTree
查看>>
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6203 ping ping ping
查看>>
《人人都是产品经理》书籍目录
查看>>
如何在git bash中运行mysql
查看>>
OO第三阶段总结
查看>>
构建之法阅读笔记02
查看>>
DataTable和 DataRow的 区别与联系
查看>>
检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
查看>>
mysql数据库中数据类型
查看>>
Fireworks基本使用
查看>>
两台电脑间的消息传输
查看>>
Linux 标准 I/O 库
查看>>
.net Tuple特性
查看>>
Java基础常见英语词汇
查看>>
iOS并发编程笔记【转】
查看>>
08号团队-团队任务5:项目总结会
查看>>
SQL2005 删除空白行null
查看>>