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. Apache Kafka源码分析 – Replica and Partition

    Replica 对于local replica, 需要记录highWatermarkValue,表示当前已经committed的数据对于remote replica,需要记录logEndOffsetV ...

  2. C#日期处理(转) 太忘记了,备忘

    //今天 DateTime.Now.Date.ToShortDateString(); //昨天,就是今天的日期减一 DateTime.Now.AddDays(-1).ToShortDateStrin ...

  3. DEV中gridview常用属性

    1.隐藏最上面的GroupPanel: gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值: sValue=Table.Rows[g ...

  4. centos7 启动docker失败--selinux-enabled=false

    centos7,执行完安装命令: yum install docker 执行启动命令: systemctl   start docker  ,报下面错误: Error starting daemon: ...

  5. mysql覆盖索引

    话说有这么一个表: CREATE TABLE `user_group` (   `id` int(11) NOT NULL auto_increment,   `uid` int(11) NOT NU ...

  6. 同步机制及windows同步函数的使用

    最近面试的许多公司都询问关于多线程的问题,但是问的深度一般不会很难,仅仅问相关的同步问题以及对应的API函数,下面是windows下几个常用的同步方法,对于应付帮助或者一般的开发都非常有用 目录一 临 ...

  7. spring 启动过程

    首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,其为后面的spring IoC容器提供宿主环境: 其次,在web.xm ...

  8. Apache配置虚拟主机的三种方法(基于IP、端口、域名)

    1 Apache虚拟主机的实现方式有3种. 基于IP的虚拟主机 基于端口的虚拟主机 基于域名的虚拟主机 2.1 启用虚拟主机的准备工作 2.1.1安装httpd [root@mail httpd]# ...

  9. 更改vim高亮括号匹配颜色

    vim括号匹配高亮显示在vim7.4版本, 默认就是开启的. 但是默认的括号匹配 高亮的颜色是浅蓝色, 在亮瞎眼的同时, 严重影响我们写代码, 最明显的感受 就是, 连续打出一对括号, 接下来不仔细看 ...

  10. 关于在MFC的视图类里面添加各种控件 以及给这些控件添加对用的函数。2015-03-24 13:46:00

    首先我们把题目所示的要求分为两个问题: 问题一:如何给基于MFC的单文档视图类里面添加 控件.就是那种类似工具箱里面的控件. 问题二:如何给已经添加的控件 定义一些消息的响应函数. ××××××××× ...