当前位置: 首页 > news >正文

CF Weakness and Poorness(三分查找+最大子段和)

https://codeforces.com/contest/578/problem/C

思路:因为要求做差连续子段和绝对值的最大,所以x的范围一定在[a_min,a_max]之间才会使结果尽可能小,同时我们可以发现这是一个单峰函数,先递减再递增,所以我们可以用三分查找算法来找峰值,然后我们可以通过最大子段和算法O(n)得到所有子段和中的最大值,负数就取最小子段和然后加绝对值就行了。

Code:

void solve()
{int n;cin>>n;vector<double> a(n),sum(n+1,0);for(auto &t:a) cin>>t;//求最大or最小子段和auto f=[&](double x)->double{int flag=0;double ans1=0,ans2=0;double ma=0;for(int i=0;i<n;i++){if(a[i]-x<0) flag=1;if(ans1+a[i]-x<0) ans1=0;else ans1+=a[i]-x;if(ans2+a[i]-x>0) ans2=0;else ans2+=a[i]-x;ma=max({ma,ans1,fabs(ans2)});}return ma;};double low=*min_element(a.begin(),a.end()),high=*max_element(a.begin(),a.end());while(high-low>4e-12)//1e-12会超时,把范围稍微缩小一点就可以了{double midl=low+(high-low)/3;double midr=high-(high-low)/3;if(f(midl)-f(midr)>4e-12) low=midl;else high=midr;}cout<<fixed<<setprecision(15)<<f(low);
} 

http://www.dtcms.com/a/583586.html

相关文章:

  • 建设网站找什么传媒公司运营是干嘛的
  • 网站建设是属于软件吗百度推广就是做网站吧
  • 佛山市网站建设系统沈阳建设工程信息网 找到中项网
  • 网站如何添加数据wordpress匿名评论插件
  • 做减肥餐的网站网站建设的开票编码
  • 做外贸的有哪些网站有哪些注册公司需要多少资金
  • 网站互动方式为WordPress添加虚拟用户
  • 离石做网站株洲建设公司网站
  • 芯伯乐700mA线性稳压器XBLW L78M05H/L78M12H:稳定可靠,简化电源设计
  • 莒县建设局网站wordpress 文章 页面
  • 佛山网站建设及推广服务公司百度seo营销
  • 网站建设教学廊坊只做山寨的网站
  • 电力系统小样本学习驱动的设备故障诊断方法优化
  • 11111
  • Claude 编程实战:从零到一构建“AI 驱动的待办清单”Web App
  • 建站技术python编程下载
  • 临沂网站建设服务商网站幻灯片 按纽
  • 正规网站建设制作中国互联网金融协会投诉电话
  • 母婴设计网站贵州省城乡与建设厅网站
  • 给自己的公司做网站怎么做好长沙网络优化产品
  • 怎么用centos做网站门户网站建设情况自查报告
  • Photoshop图像合成基础
  • 【算法】求二叉树的层序遍历
  • 做网站浏览器必须用xp系统吗wordpress自定义应用
  • 怎么建设商业网站广东h5网站建设
  • 旅游网站如何建设二级不死域名购买
  • 怎么创建一个空壳公司常见网站性能优化手段
  • 一个主机放多个网站wordpress 内容管理 模版
  • seo推广网站怎么优化推广
  • 自己能注册网站吗电销做网站项目