Codeforces 578C Weakness and Poorness
来源:互联网 发布:量表数据怎么录入excel 编辑:程序博客网 时间:2024/05/19 18:11
题目描述:给出一个数列,找出一个数x,使这个数列中每一个元素都减去x值所得的绝对值的和最小。
题目分析:当x非常大时,最终的答案值也会很大;当x为0时,一定可以找出一个大于0的值使每个元素减去它的答案值变小,因此这是一个三分题目。
#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long ll;const int maxn = 200010;const double eps = 1e-6;const int inf = 0x3f3f3f3f;const ll INF = 0x3f3f3f3f3f3f3f3fLL;double arr[maxn];int n;double cal(double x) { double t1 = 0, t2 = 0, maxsum = -INF, minsum = INF; for(int i = 1; i <= n; ++i) { if(t1 >= 0) { t1 += arr[i] - x; } else { t1 = arr[i] - x; } if(t2 <= 0) { t2 += arr[i] - x; } else { t2 = arr[i] - x; } maxsum = max(maxsum, t1); minsum = min(minsum, t2); } return max(abs(maxsum), abs(minsum));}int main() { scanf("%d", &n); for(int i = 1; i <= n; ++i) { scanf("%lf", &arr[i]); } double l = -10005.0, r = 10005.0; int lim = 100; while(lim--) { double ll = l + (r - l) / 3.0; double rr = r - (r - l) / 3.0; if(cal(ll) > cal(rr)) { l = ll; } else { r = rr; } } printf("%.9lf\n", cal(l)); //cout<<cal(l); 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 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 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
- hadoop2.0 QJM方式的HA的配置
- Ubantu Kylin Vmvare tools安装与更新
- 【hdu 1280】前m大的数(sort)
- hdu 多校联赛 RXD and dividing
- javascript中零散的知识点
- Codeforces 578C Weakness and Poorness
- 剑指offer--构建乘积数组
- 二.python运算符
- 算法
- 动态规划专题(持续更新中)
- Vue安装教程
- Javaweb项目引入js文件路径的三种方式
- 最长公共上升子序列(dp)
- 学习日记7