[USACO14MAR]破坏Sabotage
还是二分答案,发现我的$check$函数不太一样,来水一发题解
列一下式子
$$\frac{sum-sum[l,r]}{n-(r-l+1)}<=ans$$
乘过去
$$sum-sum[l,r]<=ans*(n-r+l-1)$$
即
$$\sum_{i=1}^{l-1}+\sum_{i=r+1}^{n}<=ans*(n-r+l-1)$$
$$\sum{(a_i-ans)}<=0$$
所以我们在$check$函数中,可以处理出$a_i-ans$数组
然后求个前缀和,后缀和,前缀最小值,后缀最小值,对于每个位置考虑这个位置的前缀最小和这个位置之后(因为不能一个不删)的后缀最小是否非负即可
#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=1e5+;
const double eps=1e-;
int n,m[maxn];
double ans,sum1[maxn],sum2[maxn],mn1[maxn],mn2[maxn],a[maxn];
bool check(double x)
{
for(int i=;i<=n+;i++)
mn1[i]=mn2[i]=1e9;
for(int i=;i<=n;i++)
a[i]=m[i]-x;
for(int i=;i<=n;i++)
sum1[i]=sum1[i-]+a[i],mn1[i]=min(sum1[i],mn1[i-]);
for(int i=n;i;i--)
sum2[i]=sum2[i+]+a[i],mn2[i]=min(sum2[i],mn2[i+]);
for(int i=;i<n-;i++)
if(mn1[i]+mn2[i+]<=)
return ;
return ;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&m[i]);
double l=,r=;
while(r-l>eps)
{
double mid=(l+r)/;
if(check(mid))
r=mid-eps,ans=mid;
else
l=mid+eps;
}
printf("%.3lf\n",ans);
return ;
}
[USACO14MAR]破坏Sabotage的更多相关文章
- 洛谷2115 [USACO14MAR]破坏Sabotage
https://www.luogu.org/problem/show?pid=2115 题目描述 Farmer John's arch-nemesis, Farmer Paul, has decide ...
- [USACO14MAR]破坏Sabotage 二分答案
题目描述 Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage Farmer John's milking equipmen ...
- 洛谷P2115 [USACO14MAR]破坏Sabotage
题目描述 Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage Farmer John's milking equipmen ...
- P2115 [USACO14MAR]破坏Sabotage
题意:给你一个正整数序列,让你删去一段区间内的数[l,r] $1<l\le r <n$ 使得剩余的数平均值最小$n\le 10^5$ 1.不难想到暴力,用前缀和优化$O(n^2)$ #in ...
- 洛谷【P2115】[USACO14MAR]破坏Sabotage
我对二分的理解:https://www.cnblogs.com/AKMer/p/9737477.html 题目传送门:https://www.luogu.org/problemnew/show/P21 ...
- LuoguP2115 [USACO14MAR]破坏Sabotage【二分答案】By cellur925
本来是想找一道生成树的题做的...结果被洛咕的标签骗到了这题...结果是二分答案与生成树一点mao关系都没有.... 题目大意:给你一个序列,请你删去某一个$l~r$区间的值($2<=i< ...
- [USACO14MAR] 破坏Sabotage(二分答案,分数规划)
题目链接 Solution 去掉中间一段区间 \([l,r]\) 后剩下的平均值可以表示为 : \[\frac{\sum^{n}_{i=1}{v_i}-\sum^{r}_{i=l}{v_i}}{n-( ...
- P2115 [USACO14MAR]破坏(二分答案)
给定一串数,问删除中间一段,剩下的平均数最小是多少: 不容易想到这是个二分. $solution:$ 来手玩一点式子: 首先很容易想到一个前缀和$sum_i $表示i到1的前缀和,这样就能很容易地O( ...
- USACO Sabotage
洛谷 P2115 [USACO14MAR]破坏Sabotage https://www.luogu.org/problem/P2115 JDOJ 2418: USACO 2014 Mar Gold 2 ...
随机推荐
- 如何有效地让一个“ParentFont = False”子控件使用与父母相同的字体名称?
如何有效地让一个“ParentFont = False”子控件使用与父母相同的字体名称?(How to efficiently let a `ParentFont = False` child con ...
- 1643【例 3】Fibonacci 前 n 项和
1643:[例 3]Fibonacci 前 n 项和 时间限制: 1000 ms 内存限制: 524288 KB sol:这题应该挺水的吧,就像个板子一样 1 0 01 1 0 * ...
- 【设计模式】——抽象工厂Abstract Factory
模式意图 提供对象的使用接口,隐藏对象的创建过程. 模式结构 AbstractFactory 提供创建对象的接口. ConcreteFactory 提供真正创建对象的实现类,用于组合并创建不同的对象, ...
- Integration Guide
This document, along with the samples and Javadoc™ in the IBM Sametime Software Development Kit (SDK ...
- linq partition by
static void Main(string[] args) { var beatles = (new[] { new { id=1 , inst = "guitar" , na ...
- 骑士 HYSBZ - 1040(基环树+树形dp)
Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里,在和平环境中 ...
- 【CF912E】Prime Game(meet in the middle)
[CF912E]Prime Game(meet in the middle) 题面 CF 懒得翻译了. 题解 一眼题. \(meet\ in\ the\ middle\)分别爆算所有可行的两组质数,然 ...
- 【bzoj3569】 DZY Loves Chinese II
http://www.lydsy.com/JudgeOnline/problem.php?id=3569 (题目链接) 题意 给出一个无向图,$Q$组询问,每次询问将原图断掉$C$条边后是否还连通.在 ...
- Linux让git记住账号密码
Linux让git记住账号密码 ——IT唐伯虎 摘要: Linux让git记住账号密码. 1.进入根目录,指令:cd / 2.创建记录账号密码的文件,指令:touch .git-credentials ...
- SQL记录-PLSQL运算符
PL/SQL运算符 运算符是一个符号,告诉编译器执行特定的数学或逻辑操作. PL/SQL语言有丰富的内置运算符,运算符提供的以下几种类型: 算术运算符 关系运算符 比较运算符 逻辑运算符 字符串运算符 ...