zoukankan      html  css  js  c++  java
  • CF960F Pathwalks_权值线段树_LIS

    很不错的一道思维题。
    Code:

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    const int maxn = 1000000 + 4;
    const int inf = 100000 + 4;
    int  n, m; 
    int root[maxn],  maxv[maxn << 2],ch[maxn << 2][2], cnt;
    inline void get_max(int &a,int b)
    {
        if(b > a) a = b;
    }
    struct Segment_Tree
    {
        #define lson ch[o][0]
        #define rson ch[o][1]
        inline void update(int l,int r,int delta,int val,int &o)
        {
            if(!o) o = ++cnt;
            if(l == r)
            {
                get_max(maxv[o], delta);
                return;
            }
            int mid = (l + r) >> 1;
            if(val <= mid) 
                update(l, mid, delta, val, ch[o][0]);
            else   
                update(mid + 1, r, delta, val, ch[o][1]);
            get_max(maxv[o], max(maxv[lson], maxv[rson]));
        }
        inline int query(int l,int r,int L,int R,int o)
        {
            if(!o) return 0;
            if(l > r || r < L || l > R  || L > R)  return 0;
            if(l >= L && r <= R) 
                return maxv[o];
            int mid = (l + r) >> 1;
            return max(query(l, mid, L, R, lson), query(mid + 1, r, L, R, rson));
        }
    }T;
    int main()
    {
        //freopen("input.in","r",stdin);
        scanf("%d%d",&n,&m);
        int ans = 0;
        for(int i = 1;i <= m; ++i)
        {
            int from, to, val;
            scanf("%d%d%d",&from, &to,&val);
            ++ val;
            int tmp = T.query(1, inf , 1, val - 1, root[from]);
            T.update(1, inf, tmp + 1, val, root[to]);
            get_max(ans, tmp + 1);
        }
        printf("%d",ans);
        return 0;
    }
    

      

  • 相关阅读:
    4、提取看似无用的委托变量,减少构造开销
    Cloud Foundry buildpack
    mysql中engine=innodb和engine=myisam的区别
    Maven中dependencyManagement的作用
    bean
    servlet
    web服务器 应用服务器区别 web框架
    Java和Python的Web开发
    spring mvc controller 高并发问题
    es 批量添加数据
  • 原文地址:https://www.cnblogs.com/guangheli/p/9845114.html
Copyright © 2011-2022 走看看