题面

题外话:我的实数二分有什么问题=。=

仍然(我为什么要这么说)是二分答案,如何检查呢?将所有的数减去二分出来的$mid$后求和得到和$sum$,然后如果在减出来的数列中能找出一段大于$sum$的数则可行。推式子

在减去二分出的$mid$之后,设切掉$[l,r]$,数列的总和为$tot$

$sum[1,l-1]+sum[r+1,n]+sum[l,r]=tot-mid*n$

$sum[1,l-1]+sum[r+1,n]=tot-mid*n-sum[l,r]$

只要最大化$sum[l,r]$使得剩下的和小于等于零即可,找最大子段和,注意题目强制我们选至少一个

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int N=100005;
 6 const double eps=1e-7;
 7 double num[N],tmp[N];
 8 double l,r,ans; int n;
 9 bool check(double x)
10 {
11     double tep=0.0,sum=0.0,maxx=-1e9;
12     for(int i=1;i<=n;i++)
13         tmp[i]=num[i]-x,tep+=tmp[i];
14     for(int i=2;i<n;i++)
15         sum+=tmp[i],maxx=max(maxx,sum),sum=max(sum,0.0);
16     return tep-maxx<=eps;
17 }
18 int main ()
19 {
20     scanf("%d",&n);
21     for(int i=1;i<=n;i++)
22         scanf("%lf",&num[i]),r=max(r,num[i]);
23     while(r-l>=eps)
24     {
25         double mid=(l+r)/2;
26         if(check(mid)) r=mid; else l=mid;
27     }
28     printf("%.3lf",r);
29     return 0;
30 }

View Code

转载于:https://www.cnblogs.com/ydnhaha/p/9677974.html

解题:USACO14MAR Sabotage相关推荐

  1. [USACO14MAR]Sabotage G

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

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

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

  3. P2115 [USACO14MAR]破坏Sabotage

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

  4. [USACO14MAR]破坏Sabotage

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

  5. USACO Sabotage

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

  6. [Usaco2014 Mar]Sabotage

    [Usaco2014 Mar]Sabotage 题目 Farmer John"s arch-nemesis, Farmer Paul, has decided to sabotage Far ...

  7. 通用解题法——回溯算法(理解+练习)

    积累算法经验,积累解题方法--回溯算法,你必须要掌握的解题方法! 什么是回溯算法呢? 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就&quo ...

  8. 读书笔记2013第13本:《怎样解题》

    <怎样解题>这本书是在看<编程大师访谈录>(中文版第12页)这本书时无意发现的,一个编程大师推荐这本书来指导编程设计,google到这本书后粗略地翻看了一遍,发现是一本教学生如 ...

  9. uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)

    线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报  分类: ...

最新文章

  1. Trip to Saint Petersburg CodeForces-1250 C
  2. php获取excel时间,详细介绍PHPExcel读取Excel时间的示例代码
  3. 控制台输出覆盖当前行显示
  4. 职场求生:老板说,解决不了用户流失,就要解决我,咋办?
  5. 如何用python批量下载数据_使用Python批量下载数据
  6. 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005...
  7. Sigma Grid 2.4 探究 1
  8. html div 监听事件无效,在AngularJS中将html替换为div后,Click事件不起作用
  9. 解决源码安装手册找不到问题
  10. 药用计算机题目,医用计算机基础_超星尔雅_题库及答案
  11. Altium Designer原理图编译错误报告信息解释
  12. 声律启蒙(上 下卷,珍藏版)
  13. 基于Unity的C/S架构数据交互
  14. PB函数大全【转自 http://blog.csdn.net/xiaoxian8023 】
  15. 苹果手机的高德地图的位置服务器,苹果手机高德地图家人地图在哪
  16. IOC的概念和原理:什么是IOC?、IOC的底层原理、图示、IOC接口介绍
  17. v-model 原理及使用
  18. 2.4 设计评选优秀教师和学生的程序,其类结构如图 12.5 所示。当输入一系列教师 或学生的记录后,将优秀学生及教师的姓名列出来。 图 12.5 类结构 类 base char name[8]; 含
  19. [用友]年度结转 资料 ----------网络
  20. douboo php_【H5游戏源码】Long/Hu/Dou/微信游戏源码+全套开源完整源码[整站打包]

热门文章

  1. 富文本编辑器下载与使用
  2. [原创]汇编初学者问题合集
  3. Golang单元测试覆盖率统计
  4. linux shell ifeq,Makefile 中 ifeq ifneq 等用法
  5. 大学生程序猿IT情书“2014爱的告白挑战赛”获奖名单及优秀情书展示系列之 - 【IT术语】情书+【搞笑另类】情书...
  6. Delphi FastReport 的一点小功能总结
  7. VSCode修改默认浏览器为Chrome
  8. 【flowable】十一、flowable加签和转签
  9. 使用slf4j的时候一个错误Failed to load class org.slf4j.impl.StaticLoggerBinder。
  10. IDEA控制台乱码问题