博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【BZOJ1049】 [HAOI2006]数字序列
阅读量:6191 次
发布时间:2019-06-21

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

BZOJ1049 [HAOI2006]数字序列


dp好题?

第一问

第一问我会做!令\(b_i=a_i-i\),求一个最长不下降子序列.

\(n-ans\)就是最终的答案.

第二问

好难啊.不会.挖坑待补.

考虑一下对于一个i~j的可能符合情况,定然存在一个\(k\)在i~k之中为\(a_i\),k~j之中为\(a_j\).

然后就可以dp了.

这个转移比较玄学.如果不随机就GG了.

随机的证明

代码实现

#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define ll long long#define re register#define file(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout)inline int gi(){ int f=1,sum=0;char ch=getchar(); while(ch>'9' || ch<'0'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0' && ch<='9'){sum=(sum<<3)+(sum<<1)+ch-'0';ch=getchar();} return f*sum;}const int N=50010;int a[N],n,L,cnt,mn[N],f[N],front[N],to[N<<2],nxt[N<<2];ll g[N],s1[N],s2[N];int find(int x){ int l=1,r=L,t=0; while(l<=r){ int mid=(l+r)>>1; if(mn[mid]<=x)t=mid,l=mid+1; else r=mid-1; } return t;}void dp(){ memset(mn,127,sizeof(mn)); mn[0]=-(1<<30); for(int i=1;i<=n;i++){ int q=find(a[i]); f[i]=q+1; L=max(L,f[i]); mn[q+1]=min(mn[q+1],a[i]); }}void Add(int u,int v){ to[++cnt]=v;nxt[cnt]=front[u];front[u]=cnt;}void solve(){ for(int i=n;~i;i--){ Add(f[i],i); g[i]=1ll<<60; } g[0]=0;a[0]=-(1<<30); for(int u=1;u<=n;u++) for(int i=front[f[u]-1];i;i=nxt[i]){ int v=to[i]; if(v>u)break; if(a[v]>a[u])continue; for(int j=v;j<=u;j++)s1[j]=abs(a[v]-a[j]),s2[j]=abs(a[u]-a[j]); for(int j=v+1;j<=u;j++) s1[j]+=s1[j-1],s2[j]+=s2[j-1]; for(int j=v;j

转载于:https://www.cnblogs.com/mle-world/p/10314664.html

你可能感兴趣的文章
Brave devil
查看>>
POST的Response数据问题
查看>>
android开发学习 ------- android studio 同时用svn和git 进行代码管理 出现的问题
查看>>
用几何画板求曲线弧长的方法
查看>>
SQLite语法
查看>>
Spring(七)Spring中的四种增强和顾问
查看>>
Xamarin.ios引用第三方SDK
查看>>
UGUI动态绑定事件
查看>>
Git使用教程
查看>>
iOS开发常用的RGB色值
查看>>
WIN7 Wireshark: There are no interfaces on which a capture can be done
查看>>
第三次作业代码规范修改
查看>>
活动目录实战之六 使用ADMT 3.2迁移用户和计算机
查看>>
Android项目重构之路:界面篇
查看>>
Linux下MySQL的基础(一)
查看>>
新的一年开始。
查看>>
我的友情链接
查看>>
ubuntu14安卓phalcon
查看>>
openldap
查看>>
JAVA中的文件及目录处理类--File
查看>>