zoukankan      html  css  js  c++  java
  • [BZOJ4553][TJOI2016&HEOI2016]序列

    bzoj
    luogu

    sol

    每次至多只有一个位置发生变化啊
    考虑设第(i)个数是(a_i),其可以被修改成的值最小是(L_i),最大是(R_i)。初始默认(L_i=R_i=a_i)
    考虑如果有两个位置(i,j)要相邻(假设(j)(i)的前面),那就必须满足(a_jle L_i)(R_jle a_i)。(应该不难理解吧)
    那么就可以直接上(dp)了呀。
    (dp)复杂度是(O(n^2)),由于需要满足两个限制条件,看上去很像二维平面内求区域点权最大值的样子。所以上树套树。

    code

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int gi()
    {
    	int x=0,w=1;char ch=getchar();
    	while ((ch<'0'||ch>'9')&&ch!='-') ch=getchar();
    	if (ch=='-') w=0,ch=getchar();
    	while (ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();
    	return w?x:-x;
    }
    const int N = 1e5+5;
    struct segment_tree{int ls,rs,v;}t[N*100];
    int n,m,a[N],L[N],R[N],rt[N],tot,ans;
    void modify(int &x,int l,int r,int p,int v)
    {
    	if (!x) x=++tot;t[x].v=max(t[x].v,v);
    	if (l==r) return;int mid=l+r>>1;
    	if (p<=mid) modify(t[x].ls,l,mid,p,v);
    	else modify(t[x].rs,mid+1,r,p,v);
    }
    int query(int x,int l,int r,int ql,int qr)
    {
    	if (!x||l>=ql&&r<=qr) return t[x].v;
    	int mid=l+r>>1;
    	if (qr<=mid) return query(t[x].ls,l,mid,ql,qr);
    	if (ql>mid) return query(t[x].rs,mid+1,r,ql,qr);
    	return max(query(t[x].ls,l,mid,ql,qr),query(t[x].rs,mid+1,r,ql,qr));
    }
    int main()
    {
    	n=gi();m=gi();
    	for (int i=1;i<=n;++i) L[i]=R[i]=a[i]=gi();
    	for (int i=1;i<=m;++i)
    	{
    		int x=gi(),y=gi();
    		L[x]=min(L[x],y);R[x]=max(R[x],y);
    	}
    	for (int i=1;i<=n;++i)
    	{
    		int res=0;
    		for (int j=L[i];j;j-=j&-j)
    			res=max(res,query(rt[j],1,100000,1,a[i]));
    		++res;ans=max(ans,res);
    		for (int j=a[i];j<=100000;j+=j&-j)
    			modify(rt[j],1,100000,R[i],res);
    	}
    	printf("%d
    ",ans);return 0;
    }
    
  • 相关阅读:
    use tomcat to access the file cross the environment
    data audit on hadoop fs
    Good practice release jar to Nexus
    套路!从Ruby 到 Cocoapods的发布
    单元测试之NSNull 检测
    UIwebView 和 H5交互详情
    IT 需要知道的一些专业名词和解释 (长期更新)
    Git 操作 学习资源 网址
    GCD
    软件工程——个人总结
  • 原文地址:https://www.cnblogs.com/zhoushuyu/p/8567775.html
Copyright © 2011-2022 走看看