3477: [Usaco2014 Mar]Sabotage
来源:互联网 发布:北京凶宅数据库查询 编辑:程序博客网 时间:2024/05/21 06:44
题目链接
题目大意:给你N个数,第一个和最后一个不能去掉。
现希望去掉中间某段连续的数,使得剩下的数的平均值最小化
题解:最大/最小化平均数->二分平均数,然后每个数二分值,搞一搞是否大于0
对于这题,先减去平均值,求最大连续子段和mx
那么此时序列由 L + mx + R组成. L + mx + R = sum - n * m, sum为原序列的和.
假如二分的答案m是可行的, 那么 L + R = sum - n * m - mx 应该 <= 0
我的收获:科学二分姿势
#include <cstdio>#include <cstring>#include <iostream>using namespace std;#define eps 1e-9int a[100005];double maxx,tot,s,sum;double l,r,mid,ans;int n,k;bool check(double m) { double p = 0, B, mx = -1e10; for(int i=2;i<n;i++) { B = a[i] - m; if(p >= 0) B += p; mx = max(mx, p = B); } return sum - n * m - mx <= 0;}void init(){ scanf("%d",&n); for(int i=1;i<=n;++i) { scanf("%d",&a[i]); sum+=a[i]; }}void work(){ l=0,r=1e9; while(r-l>=eps) { mid=(l+r)/2.0; if(check(mid)) r=mid,ans=mid; else l=mid; } printf("%.3lf",ans);}int main(){ init(); work(); return 0;}
阅读全文
0 0
- 3477: [Usaco2014 Mar]Sabotage
- [BZOJ 3477] [Usaco2014 Mar Gold] Sabotage
- [Usaco2014 Mar]Sabotage(dp)
- 二分答案 [Usaco2014 Mar]Sabotage
- [bzoj3477][Usaco2014 Mar][二分]Sabotage
- bzoj 3477: [Usaco2014 Mar]Sabotage luogu 【P2115】 [USACO14MAR]破坏Sabotage(二分)
- 【Usaco2014 March】Sabotage
- bzoj3480【Usaco2014 Mar】Mooo
- bzoj 3480 [Usaco2014 Mar]Mooo
- bzoj3479 [Usaco2014 Mar]Watering the Fields
- bzoj3479【Usaco2014 Mar】Watering the Fields
- BZOJ 3476: [Usaco2014 Mar]The Lazy Cow
- Sabotage
- 【BZOJ3479】[Usaco2014 Mar]Watering the Fields【最小生成树】
- bzoj 3479: [Usaco2014 Mar]Watering the Fields 最小生成树
- bzoj3479 [Usaco2014 Mar]Watering the Fields(prim裸题)
- Sabotage 二分
- [Usaco14Mar] Sabotage
- hdu 5475(线段树(锻炼思维))
- CentOS7-64bit 编译 Hadoop-2.7.4,并伪分布式安装
- linux 下利用grep查找字符串
- java基础小结(附String的使用方法)
- mongodb 导出 sql
- 3477: [Usaco2014 Mar]Sabotage
- 关于典型的存储引擎及其代表(mysql、redis/memcached、leveldb/rocksdb/hbase系)
- Yarn资源调度策略
- PullToRefresh,,,,,,上拉刷新,下拉加载
- css使用padding属性不影响盒子大小
- css常用选择器
- 实现购物车页面结算功能
- filereader流和filewriter流以及bufferreader和bufferwriter流
- 简单的EditText搜索器