2017-08-27 17:24:07

writer:pprp

题意简述:

• Codeforces 578C Weakness and poorness
• 给定一个序列A
• 一个区间的poorness定义为这个区间内和的绝对值
• weakness等于所有区间最大的poorness
• 求一个x使得,序列A全部减x后weakness最小
• 1 ≤ n ≤ 2 * 1e5

这里用到了最大连续区间的和的知识点·,可以看上一篇博客

通过三分找最小值

AC代码如下:

/*
@theme:myprogramme codeforces 578c
@writer:pprp
@declare:三分的思想
@date:2017/8/27
*/
#include <bits/stdc++.h> using namespace std;
int n;
const int maxn = 2e6+;
double a[maxn], b[maxn];
const double eps = 3e-; //找到连续区间大和
double maxSum(double a[])
{
double ans = , tmp = ;
for(int i = ; i < n ; i++)
{
tmp = max(0.0,tmp) + a[i];
ans = max(ans, tmp);
}
return ans;
} //对三分的结果进行判断
double calc(double x)
{
for(int i= ; i < n ; i++)
{
b[i] = a[i] - x;
}
double as1 = maxSum(b);
for(int i= ; i < n ; i++)
{
b[i] *= -;
}
double as2 = maxSum(b);
return max(as1, as2);
} //三分查找
double Search()
{
double l = -1e4, r = 1e4;
double m, mm;
while(r - l > eps)
{
m = (l* + r)/3.0;
mm = (r* + l)/3.0;
double as1 = calc(m);
double as2 = calc(mm);
if(as1 < as2)
r = mm;
else
l = m;
}
//找到r对应的区间和最大
return calc(r);
} int main()
{
scanf("%d", &n);
for(int i = ; i < n ; i++)
cin >> a[i];
printf("%.15f\n",Search());
return ;
}

codeforces 578c - weekness and poorness - 三分的更多相关文章

  1. [codeforces] 578C Weakness and Poorness || 三分

    原题 题目定义了两个变量: poorness表示一个区间内和的绝对值. weakness表示一个所有区间最大的poornesss 题目要求你求一个x使得 a1 − x, a2 − x, ..., an ...

  2. codeforces 578c//Weakness and Poorness// Codeforces Round #320 (Div. 1)

    题意:一个数组arr,一个数字x,要使arr-x的最大子段最小,问该最小值. 三分x,复杂度logn,内层是最大子段的模板,只能用n复杂度的.因为是绝对值最大,正负各求一次,取大的.精度卡得不得了,要 ...

  3. Weakness and Poorness CodeForces - 578C 三分搜索 (精度!)

    You are given a sequence of n integers a1, a2, ..., an. Determine a real number x such that the weak ...

  4. Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] C. Weakness and Poorness 三分 dp

    C. Weakness and Poorness Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...

  5. Codeforces Round #320 (Div. 2) [Bayan Thanks-Round] E. Weakness and Poorness 三分

    E. Weakness and Poorness time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  6. Codeforces E. Weakness and Poorness(三分最大子列和)

    题目描述: E. Weakness and Poorness time limit per test 2 seconds memory limit per test 256 megabytes inp ...

  7. Codeforces Gym101246J:Buoys(三分搜索)

    http://codeforces.com/gym/101246/problem/J 题意:给出n个点坐标,要使这些点间距相同的话,就要移动这些点,问最少的需要的移动距离是多少,并输出移动后的坐标. ...

  8. CodeForces - 457C:Elections(三分)

    You are running for a governor in a small city in Russia. You ran some polls and did some research, ...

  9. cf578c Weakness and Poorness 三分

    其实三分就是一个求单峰函数的最值的东西,用法比较统一.这个题就是观察发现不美好值是一个单峰函数,然后枚举t进行三分就行了. 题干: 给定一个长度为n的数组ai,求一个实数x,使得序列a1-x,a2-x ...

随机推荐

  1. 深入理解Flask中的上下文

    https://blog.csdn.net/barrysj/article/details/51519254 1.AppContext类即是应用上下文,可以看到里面只保存了几个变量,其中比较重要的有: ...

  2. flask建立数据模型数据类型

    https://blog.csdn.net/happyanger6/article/details/53947162 https://blog.csdn.net/happyanger6/article ...

  3. wordcount(C语言)

    写在前面 上传的作业代码与测试代码放在GitHub上了 https://github.com/IHHHH/gitforwork 本次作业用的是C语言来完成,因为个人能力与时间关系,只完成了基本功能,扩 ...

  4. python学习笔记(二)— 字典(Dictionary)

    字典是另一种可变容器模型,且可存储任意类型对象.字典是无序的,因为它没有下标,用key来当索引,所以是无序的. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分 ...

  5. ubuntu下30天自制os 的学习计划

    30天自制os的学习也告一段落,由于有其他更重要的事情要集中精力去处理.书本从15天開始就是多任务了.可是不得不停下一阵子. 以下总结下学习中遇到的一些问题. 1:学习这前14天中.问题最大的是关于G ...

  6. 使用paramiko执行远程linux主机命令

    paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件. 关于使用paramiko执行远程主机命令可以找到很多参考资料了,本文在此基础上 ...

  7. java 多线程 day10 获取线程的返回值 CallableAndFuture

    import java.util.Random;import java.util.concurrent.*; /** * Created by chengtao on 17/12/4. * * 获取线 ...

  8. Appium PageObject

    原文地址http://blog.csdn.net/TalorSwfit20111208/article/details/77434950 由于无法联系上您,在此分享您的文章,希望谅解! Appium ...

  9. class-dump安装与使用

    简介 class-dump is a command-line utility for examining the Objective-C segment of Mach-O files. It ge ...

  10. HTML5游戏开发系列教程5(译)

    原文地址:http://www.script-tutorials.com/html5-game-development-lesson-5/ 最终我决定准备下一篇游戏开发系列的文章,我们将继续使用can ...