XYLX 10.12 数列
2015-10-30 20:43
253 查看
数列
题目描述
数列 A1,A2,…,AN,修改最少的数字,使得数列严格单调递增输入输出
输入格式
第 1 行:一个正整数 N第 2 行:N 个正整数,数列 A1,A2,…,AN
输出格式
第 1 行:一个整数,表示最少修改的数字样例
输入样例
31 3 2
输出样例
1数据范围
对于 50% 的数据,N ≤ 10^3对于 100% 的数据,1 ≤ N ≤ 10^5,1 ≤ Ai ≤ 10^9
分析
该题要求求得单调递增序列,所以数字不能相同。 如果直接求得最长上升子序列那么会出现错误,因为两个数中间已经不能放数了,因为保证不重复,如2,3之间就不可以再放入数字,所以直接求得单调上升序列会使得错误的解出现,而将其转换成严格不降之后是肯定可以放入数字的,因为可以重复,所以只要找出转换后序列的最长不降序列,再用总数减去即可得到解。中间必然可以放下数字,不会出现非法的解的情况。因为数据范围较大,所以不能采用传统的O(n^2)的算法,采用O(nlog(n))的算法。代码如下
program p4214; var n,i,x,pos:longint; f:array[0..10000] of longint; function binarysearch(l,r:longint):longint; var mid:longint; begin while l<r do begin mid:=(l+r)>>1; if f[mid]>=x then r:=mid else l:=mid+1; end; exit(l); end; begin readln(n); f[0]:=0; for i:=1 to n do begin read(x); x:=x-i; if x>=f[f[0]] then begin inc(f[0]); f[f[0]]:=x; end else begin pos:=binarysearch(1,f[0]); f[pos]:=x; end; end; write(n-f[0]); end.
终于等到你
——张靓颖
到了某个年纪你就会知道
一个人的日子真的难熬
渐渐开始尝到孤单的味道
时间在敲打着你的骄傲
过了某个路口你就会感到
彻夜陪你聊天的越来越少
厌倦了被寂寞追着跑
找个爱你的人就想托付终老
能陪我走一程的人有多少
愿意走完一生的更是寥寥
是否刻骨铭心并没那么重要
只想在平淡中体会爱的味道
终于等到你
还好我没放弃
幸福来得好不容易
才会让人更加珍惜
终于等到你差点要错过你
在最好的年纪遇到你
才算没有辜负自己
终于等到你
能陪我走一程的人有多少
愿意走完一生的更是寥寥
是否刻骨铭心并没那么重要
只想在平淡中体会爱的味道
终于等到你还好我没放弃
幸福来得好不容易
才会让人更加珍惜
终于等到你差点要错过你
在最好的年纪遇到你
才算没有辜负自己
终于等到你
终于等到你
还好我没放弃
幸福来得好不容易
才会让人更加珍惜
终于等到你差点要错过你
在最好的年纪遇到你
才算没有辜负自己
终于等到你