Sabotage 二分
题目链接:http://www.usaco.org/index.php?page=viewproblem2&cpid=419
题意:有1,000,000个整数,要求从第2个到n-1个之间,删去一段连续的数,使得剩余数的平均数最小。( 1<=所有数<= 1e6).
题解:二分法,二分一个平均密度p,使原序列均减去p,求得2~n-1的最大连续和,可得到剩余数的和的正负值。若为正,则p小于mid;否则,p大于mid。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
using namespace std;const int N = 1e5+10;
const double eps = 1e-4;
double a[N],b[N],high,low,sum;
int n;double get(){double ans = 0,sum=0;double fumax = -1e8;int fl=1;for(int i=2;i<=n-1;i++){if(b[i]>0) fl=0;fumax = max(fumax,b[i]);}if(fl) return fumax;for(int i=2;i<=n-1;i++){if(sum+b[i]>0) sum += b[i];else sum = 0;ans = max(ans,sum);}return ans;
}double solve(){while(high-low>eps){double mid = (low+high)/2;for(int i=1;i<=n;i++)b[i] = a[i]-mid;double maxd = get();double tmp = sum-n*mid-maxd;if(tmp < 0) high = mid;else low = mid;}return low;
}int main(){
// freopen("10.in","r",stdin);cin >> n;sum = 0;high = 1;low = 1e8;for(int i=1;i<=n;i++){scanf("%lf",&a[i]);sum += a[i];high = max(a[i],high);low = min(a[i],low);}double ans = solve();printf("%.3lf\n",ans);return 0;
}
Sabotage 二分相关推荐
- jzoj3966 Sabotage(二分)
3966. Sabotage Description FJ 的死对头,FP,现在决定了去破坏FJ 的挤奶设备! 这个挤奶设备由一行N(3 <= N<= 100, 000)个挤奶机器,其中第 ...
- 二分答案 [Usaco2014 Mar]Sabotage
问题 L: [Usaco2014 Mar]Sabotage 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Farmer John"s arch-nemesis, Farmer ...
- P2115 [USACO14MAR]Sabotage G(二分)
P2115 [USACO14MAR]Sabotage G(二分) 经典分数规划二分题. 这里注意解释下原理. 假设当前二分的答案是x,实际的答案是ans. 显然若x满足条件,则 x<=ans.我 ...
- [二分][贪心]JZOJ P3996 Sabotage
Description FJ 的死对头,FP,现在决定了去破坏FJ 的挤奶设备! 这个挤奶设备由一行N(3 <= N<= 100, 000)个挤奶机器,其中第i 个机器生产Mi 单位的牛奶 ...
- P2115 [USACO14MAR]破坏Sabotage
P2115 [USACO14MAR]破坏Sabotage 题目描述 Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage F ...
- USACO Sabotage
洛谷 P2115 [USACO14MAR]破坏Sabotage https://www.luogu.org/problem/P2115 JDOJ 2418: USACO 2014 Mar Gold 2 ...
- [USACO14MAR]Sabotage G
[USACO14MAR]Sabotage G 题目描述 Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage Farmer ...
- USACO2014MAR 破坏Sabotage
题目描述 Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage Farmer John's milking equipmen ...
- [USACO14MAR]破坏Sabotage
题目链接:[USACO14MAR]破坏Sabotage 首先肯定二分最小值. 然后找到是否存在一个前缀min和后缀min之和小于0即可. AC代码: #pragma GCC optimize(&quo ...
最新文章
- 企业级工作流解决方案(十)--集成Abp和ng-alain--权限系统
- 在wamp 2.0环境下面安装Zend Optimizer的方法
- ASP.NET MVC 音乐商店 - 9. 注册和结账
- Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一)
- php7的foreach遍历数组,PHP中使用foreach遍历三维数组
- java 设置日期的格式_java时间格式大全
- 通过Nginx简单安装
- linux桌面lxde 安装_观点|最新精简型 Linux 桌面环境大比拼:LXDE Vs. Xfce Vs. MATE
- MySQL 5.7系列之sys schema(2)
- 来的正当时,EnableQ在线问卷调查引擎免费版发布
- 创联网络宽带上网助手的脱壳
- FreeCodeCamp学习--Falsy Bouncer
- 【USB笔记】设备功能描述符Device Capability Descriptor
- 搭建jpress个人博客
- 项目目标的SMART原则
- android工程文件assts,应用程序基础androiddevelopers英文翻译本科论文.docx
- 华为、小米已成老年手机市场主力—1.5万条老年手机电商数据解读
- 第一章第六题(数列求和)(Summation of a series)
- 微型计算机是计算器吗,小型计算机和微型计算机是同一个吗?
- SCI论文投稿全程邮件模板