【Usaco2014 March】Sabotage
来源:互联网 发布:淘宝今日销量 编辑:程序博客网 时间:2024/05/01 09:00
题意
约翰的牧场里有 N 台机器,第 i 台机器的工作能力为 Ai。保罗阴谋破坏一些机器,使得约翰的工作效率变低。保罗可以任意选取一段编号连续的机器,使它们停止工作。但这样的破坏只能搞一次,而且保罗无法破坏第一台或最后一台机器。请问他该破坏哪些机器才能让剩下机器的工作效率的平均数最小?为了显示存在感,保罗至少必须破坏一台机器。
样例
Sample Input
5
5
1
7
8
2
Sample Output
2.667
分析
二分答案。
每个数减去这个答案,再dp求最大子串和。
水题,不多说,看代码吧。
代码
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<vector>#define ll long longusing namespace std;const int maxn=100000+10;const int inf=2000000001;ll n,sum,a[maxn];double dp[maxn]; //dp[i]表示以i结尾的最大子串的和 bool ok(double x){ //假设每个数都减去了x dp[2]=a[2]-x; double ans=dp[2]; for(int i=3;i<n;i++) { dp[i]=max(dp[i-1]+a[i]-x,a[i]-x); ans=max(ans,dp[i]); } if(sum-n*x-ans>0) return true; return false;}int main(){ cin>>n; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); sum+=a[i]; } int t=38; double mid,l=0,r=10000; while(t--) { mid=(l+r)/2; if(ok(mid)) l=mid; else r=mid; } printf("%.3lf",l); return 0; }
2 0
- 【Usaco2014 March】Sabotage
- [Usaco2014 Mar]Sabotage(dp)
- 3477: [Usaco2014 Mar]Sabotage
- 二分答案 [Usaco2014 Mar]Sabotage
- [bzoj3477][Usaco2014 Mar][二分]Sabotage
- [BZOJ 3477] [Usaco2014 Mar Gold] Sabotage
- bzoj 3477: [Usaco2014 Mar]Sabotage luogu 【P2115】 [USACO14MAR]破坏Sabotage(二分)
- Sabotage
- Sabotage 二分
- [Usaco14Mar] Sabotage
- Sabotage UVA
- Uva-10480 Sabotage
- P2115 [USACO14MAR]破坏Sabotage
- March 2005
- March 2006
- March 2007
- March 2008
- March 2009
- 搭建PHP环境需要安装Apache服务器,遇到的一系列的问题(切记需要用管理权限进入CMD)
- redhat6.4配置yum
- 汇编指令
- JSP内建对象
- Z-S 变换
- 【Usaco2014 March】Sabotage
- OTP 15->18升级后,zlib:zip/1引起内存使用升高
- 编程小练习8
- 第3周-项目4-换分币
- Oracle 数据库修改索引表空间
- 敏捷宣言
- JavaScript全排列的六种算法 具体实现
- 聚类——层次聚类(Hierarchical Clustering)
- java工程师成神之路