洛谷P3051 [USACO12MAR]Haybale Restacking
[USACO12MAR]Haybale Restacking
源题目传送门
大意:
给出n块土地,现有泥土A[i],需要改造成B[i],但这次土地排列成环,且不可买进买出,只能运,且∑A[i]=∑B[i],问最小花费。
思路:
假如 1给n k个
那么 1->n k
2->1 b[1]-(a[1]-k)=b[1]-a[1]+k
3->2 b[1]+b[2]-a[1]-a[2]+k
。。。
n->n-1 Σ(b[i]-a[i]){1<=i<n}+k
那么我们可以计算出来每一个项除k外的部分成c[i]
那么答案就是
Σ|c[i]+k|{1<=i<=n} 那么k的最优解就是c[]的中位数取反;
这个就是均分纸牌了
AC代码:
#include<bits/stdc++.h>
#define Ll long long
using namespace std;
const Ll N=1e5+5;
Ll a[N],b[N],c[N];
Ll n,m,mid,ans;
int main()
{scanf("%lld",&n);for(Ll i=1;i<=n;i++)scanf("%lld%lld",&a[i],&b[i]);for(Ll i=2;i<=n;i++)c[i]=c[i-1]+b[i-1]-a[i-1];sort(c+1,c+n+1);mid=c[(n+1)/2];m=0-mid;for(Ll i=1;i<=n;i++)ans+=abs(c[i]+m);printf("%lld",ans);
}
AC图片:
洛谷P3051 [USACO12MAR]Haybale Restacking相关推荐
- [洛谷P2698] [USACO12MAR]花盆Flowerpot
洛谷题目链接:[USACO12MAR]花盆Flowerpot 题目描述 Farmer John has been having trouble making his plants grow, and ...
- 洛谷P2698 [USACO12MAR]Flowerpot S
P2698 [USACO12MAR]Flowerpot S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 思路: 宽度太小,第一滴和最后一滴的时间差只可能会小,宽度太大,时 ...
- 洛谷P2698 [USACO12MAR]花盆Flowerpot
P2698 [USACO12MAR]花盆Flowerpot 题目描述 Farmer John has been having trouble making his plants grow, and n ...
- 洛谷 P1849 [USACO12MAR]拖拉机Tractor
题目描述 After a long day of work, Farmer John completely forgot that he left his tractor in the middle ...
- #单调队列#洛谷 2698 [USACO12MAR]花盆Flowerpot
题目 给出N滴水的坐标(X,Y),y表示水滴的高度,x表示它下落到x轴的位置.每滴水每秒从(x,y)到(x,y-1).你需要把花盆放在x轴上的某个位置,使得从开始接水到水滴完之间的时间差至少为D,只要 ...
- 洛谷 P2698 [USACO12MAR]花盆Flowerpot 单调队列
https://www.luogu.org/problemnew/show/P2698 题意中文的不说了: 做法:就是一个滑动区间维护最大值和最小值,首先,了解一条性质,对于满足要求的两个区间 (l1 ...
- [洛谷P2698][USACO12MAR]花盆Flowerpot
题目大意:$n$个坐标和时间.需要找到最小的一段区间使得这一段区间最大时间减去最小时间的差大于$d$ 题解:发现对于较优的区间$[l_i,r_i]$(即对于这个左端点,$r_i$是第一个符合条件的), ...
- 洛谷 P2698 [USACO12MAR]花盆Flowerpot(抄)
题目描述 Farmer John has been having trouble making his plants grow, and needs your help to water them p ...
- 洛谷试炼场 4-8单调队列
layout: post title: 洛谷试炼场 4-8单调队列 author: "luowentaoaa" catalog: true mathjax: true tags: ...
最新文章
- 如何从0-1构建自己的”pytorch“(自己专属的深度学习框架)——part01
- java怎么解决页面乱码问题_java页面中文乱码的解决办法
- 征战蓝桥 —— 题解目录
- MySQL5.7的搭建以及SSL证书
- linux密码加密方式 2y,手动生成Linux密码(/etc/shadow)
- KandQ:单例模式的七种写法及其相关问题解析
- python课程-Python课程学习总结
- 分布式存储---moosefs部署
- Matlab2014的下载和安装过程
- 文字描边加粗_这些PPT描边字,效果好到没朋友~
- 《计算机操作系统》(慕课版) 第1章 操作系统引论
- 各大人脸识别库的介绍
- CF机器码怎么解-LOL机器码怎么改?(最详细教程CX)
- linux设置library path,如何在linux中设置环境变量LD_LIBRARY_PATH
- 常用大数据核心技术有哪些?
- camera 测光模式 和 实际应用
- 如何判断是否是ssd硬盘?win10查看固态硬盘的方法
- UE4-(蓝图)第二十四课UI主菜单(UI主菜单功能、镜头过渡,控制权切换)
- 20191223-20191227风险指标的学习总结
- 将中文汉字转换成拼音(全拼)