解题:USACO14MAR Sabotage
题面
题外话:我的实数二分有什么问题=。=
仍然(我为什么要这么说)是二分答案,如何检查呢?将所有的数减去二分出来的$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]$使得剩下的和小于等于零即可,找最大子段和,注意题目强制我们选至少一个
![](/assets/blank.gif)
![](/assets/blank.gif)
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相关推荐
- [USACO14MAR]Sabotage G
[USACO14MAR]Sabotage G 题目描述 Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage Farmer ...
- P2115 [USACO14MAR]Sabotage G(二分)
P2115 [USACO14MAR]Sabotage G(二分) 经典分数规划二分题. 这里注意解释下原理. 假设当前二分的答案是x,实际的答案是ans. 显然若x满足条件,则 x<=ans.我 ...
- P2115 [USACO14MAR]破坏Sabotage
P2115 [USACO14MAR]破坏Sabotage 题目描述 Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage F ...
- [USACO14MAR]破坏Sabotage
题目链接:[USACO14MAR]破坏Sabotage 首先肯定二分最小值. 然后找到是否存在一个前缀min和后缀min之和小于0即可. AC代码: #pragma GCC optimize(&quo ...
- USACO Sabotage
洛谷 P2115 [USACO14MAR]破坏Sabotage https://www.luogu.org/problem/P2115 JDOJ 2418: USACO 2014 Mar Gold 2 ...
- [Usaco2014 Mar]Sabotage
[Usaco2014 Mar]Sabotage 题目 Farmer John"s arch-nemesis, Farmer Paul, has decided to sabotage Far ...
- 通用解题法——回溯算法(理解+练习)
积累算法经验,积累解题方法--回溯算法,你必须要掌握的解题方法! 什么是回溯算法呢? 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就&quo ...
- 读书笔记2013第13本:《怎样解题》
<怎样解题>这本书是在看<编程大师访谈录>(中文版第12页)这本书时无意发现的,一个编程大师推荐这本书来指导编程设计,google到这本书后粗略地翻看了一遍,发现是一本教学生如 ...
- uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)
线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报 分类: ...
最新文章
- Trip to Saint Petersburg CodeForces-1250 C
- php获取excel时间,详细介绍PHPExcel读取Excel时间的示例代码
- 控制台输出覆盖当前行显示
- 职场求生:老板说,解决不了用户流失,就要解决我,咋办?
- 如何用python批量下载数据_使用Python批量下载数据
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005...
- Sigma Grid 2.4 探究 1
- html div 监听事件无效,在AngularJS中将html替换为div后,Click事件不起作用
- 解决源码安装手册找不到问题
- 药用计算机题目,医用计算机基础_超星尔雅_题库及答案
- Altium Designer原理图编译错误报告信息解释
- 声律启蒙(上 下卷,珍藏版)
- 基于Unity的C/S架构数据交互
- PB函数大全【转自 http://blog.csdn.net/xiaoxian8023 】
- 苹果手机的高德地图的位置服务器,苹果手机高德地图家人地图在哪
- IOC的概念和原理:什么是IOC?、IOC的底层原理、图示、IOC接口介绍
- v-model 原理及使用
- 2.4 设计评选优秀教师和学生的程序,其类结构如图 12.5 所示。当输入一系列教师 或学生的记录后,将优秀学生及教师的姓名列出来。 图 12.5 类结构 类 base char name[8]; 含
- [用友]年度结转 资料 ----------网络
- douboo php_【H5游戏源码】Long/Hu/Dou/微信游戏源码+全套开源完整源码[整站打包]
热门文章
- 富文本编辑器下载与使用
- [原创]汇编初学者问题合集
- Golang单元测试覆盖率统计
- linux shell ifeq,Makefile 中 ifeq ifneq 等用法
- 大学生程序猿IT情书“2014爱的告白挑战赛”获奖名单及优秀情书展示系列之 - 【IT术语】情书+【搞笑另类】情书...
- Delphi FastReport 的一点小功能总结
- VSCode修改默认浏览器为Chrome
- 【flowable】十一、flowable加签和转签
- 使用slf4j的时候一个错误Failed to load class org.slf4j.impl.StaticLoggerBinder。
- IDEA控制台乱码问题