JZOJ 4845 【NOIP2016提高A组集训第5场11.2】寻找
2016-11-04 19:25
381 查看
寻找
题目描述
在平面直角坐标系上有N个果实,每个果实都有一个对应的坐标,现在YYK从原点(0,0)出发,由于YYK是一种很奇怪的生物,所以她的运动方式只有三种(假设当前YYK在(x,y))1、YYK可以走到(x+1,y)
2、它可以走到(x,y+1)
3、她可以走到(x+1,y+1)
YYK很贪心,她想拿尽量多的果实,但她又比较蠢,不知道她最多能拿多少个果实,于是她把这个问题交给了你。
数据范围
对于100%的数据1<=N<=105,-109<=Xi,Yi<=109其中(Xi,Yi)为第i个果实的坐标。
题解
首先,YYK走过的路径一定是一条横纵坐标都递增的路径,于是我们可以按照果实的横坐标排序,按照纵坐标的大小求一次最长不下降子序列的长度即可。Code(Pascal)
var n,m,j,k,i,o,le,ri,longest,ans,mid:longint; f,len:array[-1..100200] of int64; zb:array[0..100200,1..2] of int64; function max(a,b:int64):int64; begin if a>b then exit(a) else exit(b); end; procedure qsort(l,r:longint); var i,j,m,mm:longint; begin i:=l; j:=r; m:=zb[(l+r) div 2,1]; mm:=zb[(l+r) div 2,2]; repeat while (zb[i,1]<m) or (zb[i,1]=m) and (zb[i,2]<mm) do inc(i); while (zb[j,1]>m) or (zb[j,1]=m) and (zb[j,2]>mm) do dec(j); if i<=j then begin zb[0]:=zb[i]; zb[i]:=zb[j]; zb[j]:=zb[0]; inc(i); dec(j); end; until i>j; if l<j then qsort(l,j); if i<r then qsort(i,r); end; begin readln(n); for i:=1 to n do readln(zb[i,1],zb[i,2]); qsort(1,n); zb[n+1,1]:=1; for j:=1 to n+1 do if (zb[j,1]>=0) and (zb[j,2]>=0) then break; f[j]:=1; longest:=1; len[1]:=zb[j,2]; len[0]:=0; len[-1]:=-1000000001; ans:=1; for i:=j+1 to n do begin le:=-1; ri:=longest+1; while le+1<ri do begin mid:=(le+ri) div 2; if len[mid]<=zb[i,2] then le:=mid else ri:=mid; end; f[i]:=le+1; if le=longest then inc(longest); if f[i]<>0 then len[le+1]:=zb[i,2]; ans:=max(ans,f[i]); end; writeln(ans); end.
相关文章推荐
- 【JZOJ4845】【NOIP2016提高A组集训第5场11.2】寻找
- 4845. 【NOIP2016提高A组集训第5场11.2】寻找
- 【NOIP2016提高A组集训第5场11.2】寻找
- JZOJ4846【NOIP2016提高A组集训第5场11.2】行走
- 【NOIP2016提高A组集训第5场11.2】夕阳
- JZOJ4847【NOIP2016提高A组集训第5场11.2】夕阳
- 【JZOJ4846】【NOIP2016提高A组集训第5场11.2】行走
- 【NOIP2016提高A组集训第5场11.2】行走
- 【JZOJ4847】【NOIP2016提高A组集训第5场11.2】夕阳
- 4847. 【NOIP2016提高A组集训第5场11.2】夕阳
- 【JZOJ4832】【NOIP2016提高A组集训第3场10.31】高维宇宙
- JZOJ4861【NOIP2016提高A组集训第7场11.4】推冰块
- JZOJ4869【NOIP2016提高A组集训第9场11.7】平均数
- JZOJ 4866 【NOIP2016提高A组集训第8场11.5】禅与园林艺术
- JZOJ4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰 2017.10(B组)
- jzoj 4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
- 【JZOJ4824】【NOIP2016提高A组集训第1场10.29】配对游戏
- 【JZOJ4831】【NOIP2016提高A组集训第3场10.31】方程式
- JZOJ4876. 【NOIP2016提高A组集训第10场11.8】时空传送 拓扑序判断最长路是否合法
- JZOJ 4882 【NOIP2016提高A组集训第12场11.10】多段线性函数