第一问类似最长上升序列,只不过因为要满足能修改所以不能直接求
比如2 3 4 4 5 最长上升序列长是4,但是最少修改是2,因为一个这个最长上升序列不能保持不变
因此我们对a[i]-i,然后求这个新序列ai的最长不下降序列即可
第二问我们设f[i]表示以位置i结尾的最长不下降序列长度
显然要满足修改最少的数显然一个修改区间是[j+1,i-1]满足f[i]=f[j]+1 且 a[j]<=a[i]
这里有一个性质,就是这个区间内一定最后刷成a[i]或a[j]
然后暴力搞,然后数据弱就过了

 const inf=;
type node=record
po,next:longint;
end; var f,q,a,b,p:array[..] of longint;
v,c,d:array[..] of int64;
w:array[..] of node;
m,n,t,l,r,j,k,i:longint; function min(a,b:int64):int64;
begin
if a>b then exit(b) else exit(a);
end; begin
readln(n);
for i:= to n do
begin
read(a[i]);
a[i]:=a[i]-i;
end;
a[]:=-inf;
t:=;
q[]:=;
f[]:=;
for i:= to n do
begin
if (a[i]>=a[q[t]]) then
begin
inc(t);
f[i]:=t;
q[t]:=i;
end
else begin
l:=;
r:=t;
while l<r do
begin
m:=(l+r) shr ;
if a[i]<a[q[m]] then r:=m else l:=m+;
end;
q[l]:=i;
f[i]:=l;
end;
end;
writeln(n-t);
inc(n);
a[n]:=inf;
f[n]:=t+; //新增加一个无穷大的点方便统计
t:=;
for i:=n+ downto do
begin
inc(t);
w[t].po:=i;
w[t].next:=p[f[i]];
p[f[i]]:=t; //记录满足f[j]+=f[i]的点
end;
for i:= to n do
begin
j:=p[f[i]-];
l:=w[j].po;
d[i]:=;
for k:=i- downto l+ do
d[k]:=d[k+]+abs(a[k]-a[i]);
v[i]:=inf*inf;
while j<> do
begin
if w[j].po>i then break;
l:=w[j].po;
if a[l]<=a[i] then
begin
c[l]:=;
for k:=l+ to i- do
c[k]:=c[k-]+abs(a[k]-a[l]);
for k:=l to i- do
v[i]:=min(v[i],c[k]+d[k+]+v[l]);
end;
j:=w[j].next;
end;
end;
writeln(v[n]);
end.

bzoj1049的更多相关文章

  1. 【BZOJ1049】 [HAOI2006]数字序列

    BZOJ1049 [HAOI2006]数字序列 dp好题? 第一问 第一问我会做!令\(b_i=a_i-i\),求一个最长不下降子序列. \(n-ans\)就是最终的答案. 第二问 好难啊.不会.挖坑 ...

  2. BZOJ1049 [HAOI2006]数字序列0

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  3. BZOJ1049: [HAOI2006]数字序列

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1049 题解: ydc的题解:http://pan.baidu.com/share/link?u ...

  4. BZOJ1049:[HAOI2006]数字序列(DP)

    Description 现在我们有一个长度为n的整数序列A.但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列. 但是不希望改变过多的数,也不希望改变的幅度太大. Input 第一行包含一个 ...

  5. 洛谷P2501 bzoj1049 [HAOI2006]数字序列

    题目链接 bzoj 洛谷 题解 第一问: 假如 \(i < j\) 如果 \(j\)能从\(i\)转移过来 显然中间空隙必须足够 例如:\(50\) \(53\) \(53\) \(52\) 就 ...

  6. 【BZOJ1049】【Luogu P2501】 [HAOI2006]数字序列 DP,结论,LIS

    很有(\(bu\))质(\(hui\))量(\(xie\))的一个题目. 第一问:求最少改变几个数能把一个随机序列变成单调上升序列. \(Solution:\)似乎是一个结论?如果两个数\(A_i\) ...

  7. bzoj题解汇总(1032~1051)

    bzoj1034:贪心 bzoj1036:树剖 bzoj1037:一个比较巧妙,利用连续性维护的dp. http://www.cnblogs.com/Sdchr/p/6129496.html bzoj ...

  8. Codeforces 713 C Sonya and Problem Wihtout a Legend

    Description Sonya was unable to think of a story for this problem, so here comes the formal descript ...

  9. BZOJ第1页养成计划

    嗯,用这篇博客当一个目录,方便自己和学弟(妹?)们查阅.不定期更新. BZOJ1000   BZOJ1001   BZOJ1002   BZOJ1003   BZOJ1004   BZOJ1005   ...

随机推荐

  1. C10K问题和Libevent库介绍

    http://blog.chinaunix.net/uid-20761674-id-75056.html 一.C10K的问题 C10K的问题在上个世纪90年代就被提出来了.大概的意思是当用户数超过1万 ...

  2. Ngen生成Native代码实战及优缺点分析

    先科普一下,.Net是一个用于Windows的托管代码模型,用于高效构建具有视觉上引人注目的用户体验的应用程序.但这个模型生成的代码并非可执行代码,而是由.Net公共语言运行库环境执行的IL代码.所以 ...

  3. Java的云打印Lodop

        打印某一个网页上的内容我们都经常遇到过,比如网上申请港澳通行证时需要填写申请表,然后把申请表给打印出来.像这样的打印技术是怎么实现?这种打印可以通过一种叫云打印的插件来做,按我的理解云打印的技 ...

  4. zlib压缩解压示例

    #include <stdio.h> #include <string.h> #include <assert.h> #include "zlib.h&q ...

  5. YII 开启URL伪静态

    1.开启apache的mode_rewrite模块 去掉LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号 确保<Directory ...

  6. ASP.NET 优化 check list

    看到一个蛮有意思的网站,里面有针对asp.net方方面面优化的罗列: 点击打开链接http://webdevchecklist.com/asp.net/performance/ 点击打开链接http: ...

  7. 用source code编译安装Xdebug

    1. Unpack the tarball: tar -xzf xdebug-2.2.x.tgz.  Note that you do not need to unpack the tarball i ...

  8. 用eclipse建立简单WebService客户端,使用WSDL,用于短信接口发送

    使用工具:eclipse 标准版,不用任何插件. 操作步骤: 建立java Project 命名为mess: 再在project上右键,选择other,选择web service文件类别,选择web ...

  9. onmouseleave与onmouseout区别

    1.onmouseleave.onmouseenter,鼠标进入到指定元素区域内触发事件,不支持冒泡,不包含子元素的区域. 2.onmouseout.onmouseover.鼠标进入指定元素触发事件, ...

  10. 『奇葩问题集锦』Ruby 切换淘宝源报错WARNING: Error fetching data: SSL_connect returned=1 errno=0 state=SSLv3 read s erver certificate B: certificate verify failed

    ===>首先需要使用https<===https://ruby.taobao.org/ 第一步 下载http://pan.baidu.com/s/1kU0rxtH 复制到ruby安装的根目 ...