博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 3173: [Tjoi2013]最长上升子序列
阅读量:5220 次
发布时间:2019-06-14

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

这个题一开始感觉是想的差不多了,,然而不知道为什么没继续想(貌似是没考虑到treap的插入改怎么搞之类的)

那么这个题直接蹩脚的用treap模拟一下插入,然后枚举答案,在序列里二分就好了,最后答案就是max(ans[i],ans[i-1])(后面肯定不能比前面小吧)

1 #include 
2 #define LL long long 3 #define inf 0x3f3f3f3f 4 using namespace std; 5 inline int ra() 6 { 7 int x=0,f=1; char ch=getchar(); 8 while (ch<'0' || ch>'9') {
if (ch=='-') f=-1; ch=getchar();} 9 while (ch>='0' && ch<='9') {x=x*10+ch-'0'; ch=getchar();}10 return x*f;11 }12 int n,sz,root,now,mx;13 int mn[100005],ans[100005];14 int v[100005],size[100005],rnd[100005],ls[100005],rs[100005];15 void update(int x){size[x]=size[ls[x]]+size[rs[x]]+1;}16 void rturn(int &x){
int t=ls[x]; ls[x]=rs[t]; rs[t]=x; update(x); update(t); x=t;}17 void lturn(int &x){
int t=rs[x]; rs[x]=ls[t]; ls[t]=x; update(x); update(t); x=t;}18 void insert(int &k, int x)19 {20 if (!k){21 k=++sz; size[k]=1; rnd[k]=rand();22 return;23 }24 size[k]++;25 if (size[ls[k]]

 

转载于:https://www.cnblogs.com/ccd2333/p/6511956.html

你可能感兴趣的文章
sql常见面试题
查看>>
jQuery总结第一天
查看>>
Java -- Swing 组件使用
查看>>
Software--Architecture--DesignPattern IoC, Factory Method, Source Locator
查看>>
poj1936---subsequence(判断子串)
查看>>
黑马程序员_Java基础枚举类型
查看>>
[ python ] 练习作业 - 2
查看>>
一位90后程序员的自述:如何从年薪3w到30w!
查看>>
在.net core上使用Entity FramWork(Db first)
查看>>
System.Net.WebException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集...
查看>>
UIImage 和 iOS 图片压缩UIImage / UIImageVIew
查看>>
MongoDB的数据库、集合的基本操作
查看>>
ajax向后台传递数组
查看>>
疯狂JAVA16课之对象与内存控制
查看>>
[转载]树、森林和二叉树的转换
查看>>
WPF移动Window窗体(鼠标点击左键移动窗体自定义行为)
查看>>
软件测试-----Graph Coverage作业
查看>>
django ORM创建数据库方法
查看>>
创建Oracle synonym 详解
查看>>
php7 新特性整理
查看>>