bzoj2216: [Poi2011]Lightning Conductor(分治决策单调性优化)
2024-09-19 05:56:22
每个pi要求
这个只需要正反DP(?)一次就行了,可以发现这个是有决策单调性的,用分治优化
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int maxn=,inf=1e9;
int n;
int a[maxn],f[maxn][];
void read(int &k)
{
int f=;k=;char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(c<=''&&c>='')k=k*+c-'',c=getchar();
k*=f;
}
void solve(int l,int r,int L,int R,int ty)
{
if(l>r||L>R)return;
int mid=(l+r)>>,pos;
double mx=0.0;
for(int i=L;i<=R&&i<=mid;i++)
{
if((double)a[i]-a[mid]+sqrt(mid-i)>=mx)
mx=(double)a[i]-a[mid]+sqrt(mid-i),pos=i;
}
f[mid][ty]=(int)ceil(mx);
solve(l,mid-,L,pos,ty);solve(mid+,r,pos,R,ty);
}
int main()
{
read(n);
for(int i=;i<=n;i++)read(a[i]);
solve(,n,,n,);
reverse(a+,a++n);
solve(,n,,n,);
for(int i=;i<=n;i++)printf("%d\n",max(f[i][],f[n-i+][]));
}
最新文章
- html5第二天
- Mdrill 安装部署(单机版)
- The Linux Process Principle,NameSpace, PID、TID、PGID、PPID、SID、TID、TTY
- Windows安装Python图像处理库:PIL模块
- HDU 2196 Computer 树形DP 经典题
- c指针提高
- JAVA多态问题总结(课堂总结)
- java中的类修饰符、成员变量修饰符、方法修饰符
- Swift 实现俄罗斯方块详细思路解析(附完整项目)
- 用java写的一个简易记事本
- HTTPS 基本流程2
- PHP02
- ECMAScript 引用类型
- CSS等高布局的7种方式
- 扩展EF的Fluent API中的 OnModelCreating方法 实现全局数据过滤器
- Android BLE设备蓝牙通信框架BluetoothKit
- vs 2015
- Bigbluebutton安装过程
- log4j 配置(转)
- 665. Non-decreasing Array只允许修改一位数的非递减数组
热门文章
- selenide 自动化测试进阶一: 查找元素和相关操作
- 跟浩哥学自动化测试Selenium -- 浏览器的基本操作与元素定位(3)
- Objective-C NSString基本使用 类方法 self关键字
- HDU - 6409:没有兄弟的舞会(数学+思维)
- Java集合学习--集合总结
- 如何借助windows的VHD引导特性实现VHD多windows系统共存
- Hadoop第二课:Hadoop集群环境配置
- SpringCloud IDEA 教学 (二) Eureka Service
- BAT 批处理脚本 教程 【转】
- SGU 438 The Glorious Karlutka River =)(最大流)