博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
noi.ac NA531 【神树和物品】
阅读量:5086 次
发布时间:2019-06-13

本文共 1368 字,大约阅读时间需要 4 分钟。

今日成就:本来以为过了这题,然后被mcfx发现写假并针对地造了一组hack数据之后FST了。

复杂度什么的咱也不会证,咱也不会卡,被hack之后只能FST。

是个决策单调性sb题,但是由于太菜不怎么会写决策单调性于是胡搞了一波,然后还是被mcfx卡了\(\mathcal{O}(n^2)\),成功\(100\rightarrow44\)

单调队列写丑了我也没什么办法...sb挂sb题...

没啥说的了,直接扔代码:

#include
using namespace std;const int N=3e5+5;int n,a[N],x[N],y[N];void qread(int &xx){ xx=0;int ch=getchar(); while(ch<'0'||ch>'9'){ ch=getchar(); } while(ch>='0'&&ch<='9'){ xx=xx*10+ch-'0'; ch=getchar(); }}long long f[N];long long calc(int l,int r){ int u=abs(a[r]-x[l]); return 1LL*u*u*u+1LL*y[l]*y[l]*y[l];}int dq[N],dqfr=1,dqen;int bs(int l,int r,int pos1,int pos2){ int mid; while(l
>1; f[pos1]+calc(pos1+1,mid)>=f[pos2]+calc(pos2+1,mid)?r=mid:l=mid+1; } return l;}int main(){ qread(n); for(int i=1;i<=n;i++){ qread(a[i]); } for(int i=1;i<=n;i++){ qread(x[i]); } for(int i=1;i<=n;i++){ qread(y[i]); } dq[++dqen]=0; for(int i=1;i<=n;i++){ while(dqfr
=f[dq[dqfr+1]]+calc(dq[dqfr+1]+1,i)){ ++dqfr; } f[i]=f[dq[dqfr]]+calc(dq[dqfr]+1,i); while(dqen>dqfr&&bs(1,n+1,dq[dqen],i)<=bs(1,n+1,dq[dqen-1],dq[dqen])){ --dqen; } dq[++dqen]=i; } printf("%lld\n",f[n]); return 0;}

转载于:https://www.cnblogs.com/--BLUESKY007/p/11138440.html

你可能感兴趣的文章
javaScript函数节流与函数防抖
查看>>
移动端点击图片查看大图
查看>>
Linux安装redis数据库及添加环境变量
查看>>
Mysql索引和性能优化笔记
查看>>
oracle sql 性能 优化
查看>>
pm2 日常使用
查看>>
H5+SDK
查看>>
Linux命令:用“dirs”、“pushd”、“popd”来操作目录栈
查看>>
sqlserver2016 management tool v18
查看>>
C#/.NET 实现MD5加密的简单写法
查看>>
1217.2——定义一个类+方法声明调用
查看>>
Oracle11G 数据库导出后再导入,部分表没有导入
查看>>
将博客搬至CSDN
查看>>
数据库10大常见安全问题及Top 10 数据库安全工具盘点
查看>>
poj3261 Milk Patterns
查看>>
继电器
查看>>
SQLServer → 10:数据完整性
查看>>
2009程序员考试大纲
查看>>
Shell入门
查看>>
Cocos工程命名规则整理(node部分)
查看>>