题目链接: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 二分相关推荐

  1. jzoj3966 Sabotage(二分)

    3966. Sabotage Description FJ 的死对头,FP,现在决定了去破坏FJ 的挤奶设备! 这个挤奶设备由一行N(3 <= N<= 100, 000)个挤奶机器,其中第 ...

  2. 二分答案 [Usaco2014 Mar]Sabotage

    问题 L: [Usaco2014 Mar]Sabotage 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Farmer John"s arch-nemesis, Farmer ...

  3. P2115 [USACO14MAR]Sabotage G(二分)

    P2115 [USACO14MAR]Sabotage G(二分) 经典分数规划二分题. 这里注意解释下原理. 假设当前二分的答案是x,实际的答案是ans. 显然若x满足条件,则 x<=ans.我 ...

  4. [二分][贪心]JZOJ P3996 Sabotage

    Description FJ 的死对头,FP,现在决定了去破坏FJ 的挤奶设备! 这个挤奶设备由一行N(3 <= N<= 100, 000)个挤奶机器,其中第i 个机器生产Mi 单位的牛奶 ...

  5. P2115 [USACO14MAR]破坏Sabotage

    P2115 [USACO14MAR]破坏Sabotage 题目描述 Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage F ...

  6. USACO Sabotage

    洛谷 P2115 [USACO14MAR]破坏Sabotage https://www.luogu.org/problem/P2115 JDOJ 2418: USACO 2014 Mar Gold 2 ...

  7. [USACO14MAR]Sabotage G

    [USACO14MAR]Sabotage G 题目描述 Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage Farmer ...

  8. USACO2014MAR 破坏Sabotage

    题目描述 Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage Farmer John's milking equipmen ...

  9. [USACO14MAR]破坏Sabotage

    题目链接:[USACO14MAR]破坏Sabotage 首先肯定二分最小值. 然后找到是否存在一个前缀min和后缀min之和小于0即可. AC代码: #pragma GCC optimize(&quo ...

最新文章

  1. 企业级工作流解决方案(十)--集成Abp和ng-alain--权限系统
  2. 在wamp 2.0环境下面安装Zend Optimizer的方法
  3. ASP.NET MVC 音乐商店 - 9. 注册和结账
  4. Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一)
  5. php7的foreach遍历数组,PHP中使用foreach遍历三维数组
  6. java 设置日期的格式_java时间格式大全
  7. 通过Nginx简单安装
  8. linux桌面lxde 安装_观点|最新精简型 Linux 桌面环境大比拼:LXDE Vs. Xfce Vs. MATE
  9. MySQL 5.7系列之sys schema(2)
  10. 来的正当时,EnableQ在线问卷调查引擎免费版发布
  11. 创联网络宽带上网助手的脱壳
  12. FreeCodeCamp学习--Falsy Bouncer
  13. 【USB笔记】设备功能描述符Device Capability Descriptor
  14. 搭建jpress个人博客
  15. 项目目标的SMART原则
  16. android工程文件assts,应用程序基础androiddevelopers英文翻译本科论文.docx
  17. 华为、小米已成老年手机市场主力—1.5万条老年手机电商数据解读
  18. 第一章第六题(数列求和)(Summation of a series)
  19. 微型计算机是计算器吗,小型计算机和微型计算机是同一个吗?
  20. SCI论文投稿全程邮件模板

热门文章

  1. Mysql中4种常见的插入方式
  2. HP-UX top 输出中实存/虚存数据解释【转载】
  3. 11.2.0.4修改RAC单节点VIP
  4. c++算法训练(4)
  5. 有限自动机与正规式、表达式
  6. 鸿蒙系统游戏跟安卓互通吗,鸿蒙系统玩游戏跟安卓互通吗
  7. 遇见你,爱上你——--献给奇查最美的情书
  8. git和SVN提交上库全流程
  9. IPO影子股掘金路线图
  10. 计算机英语教程双色版翻译,计算机英语教程(双色版)参考译文