CodeForces 578C Weakness and Poorness 二分
来源:互联网 发布:糊网络用语什么意思 编辑:程序博客网 时间:2024/05/28 06:04
题意:确定一个x使序列a1-x,a2-x,...,an-x的weakness最小,输出最小weakness。(weakness是连续子序列的和的绝对值的最小值)
解法:以前对二分的理解就是二分答案,上下界分别在目标解的两侧,其中一个满足一个不满足。这个题值得自己反思了。
正解二分X,目标情况的X值应该是这段序列的连续子序列的最大值和最小值的和逼近0。
代码:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn = 200005;const double eps = 1e-12;const double inf = 1e10;int n,a[maxn];double dp[2][maxn];int main(){ int i,j; scanf("%d",&n); for(i = 0;i < n;i++) scanf("%d",&a[i]); double t1,t2,mid,lb = -20000,rb = 20000; while(rb-lb>eps){ mid = (lb+rb)/2; for(i = 0;i < n;i++) dp[0][i] = t1 = -inf,dp[1][i] = t2 = inf; for(i = 0;i < n;i++){ dp[0][i] = i?max(a[i]-mid,dp[0][i-1]+a[i]-mid):a[i]-mid; dp[1][i] = i?min(a[i]-mid,dp[1][i-1]+a[i]-mid):a[i]-mid; t1 = max(t1,dp[0][i]);t2 = min(t2,dp[1][i]); }//printf("%.6f %.6f %.6f\n",t1,t2,mid); if(t1+t2>0) lb = mid; else rb = mid; } printf("%.9f\n",t1); return 0;}
0 0
- CodeForces 578C Weakness and Poorness 二分
- Codeforces 578C Weakness and Poorness
- codeforces 578C Weakness and Poorness
- Codeforces 578C Weakness and Poorness
- Codeforces 578C Weakness and Poorness(二分 + 最大(小)子段和)
- CodeForces Weakness and Poorness
- Weakness and Poorness CodeForces
- 578C. Weakness and Poorness(Codeforces Round #320)
- 578C - Weakness and Poorness 三分
- 三分 - CF 578C Weakness and Poorness
- Codeforces Round #320 (Div. 1) C. Weakness and Poorness
- CodeForces 578C Weakness and Poorness(三分法+最大子段和)
- 【三分】[CodeForces - 579E]Weakness and Poorness
- codeforces578C. Weakness and Poorness
- codeforces578C. Weakness and Poorness
- Codeforces Round #320 (Div. 1) C. Weakness and Poorness(三分)
- Codeforces Round #320 (Div. 2) E. Weakness and Poorness
- 三分算法--Codeforces Round #320 (Div. 2) E. Weakness and Poorness
- RecyclerView
- Windows消息响应机制
- 我的PHP学习之路
- HDOJ 1847 Good Luck in CET-4 Everybody!(巴什博奕)
- nasm : use bochs debug boot loader
- CodeForces 578C Weakness and Poorness 二分
- 成员变量和局部变量
- 窗体间传值
- redis 安装 以及php扩展安装
- Minimum Size Subarray Sum
- LintCode 比较字符串
- win下 socket基础实现(C++) 01
- 前端性能优化指南
- PDB文件:每个开发人员都必须知道的