• Codeforces Round #279 (Div. 2)f


    树形最大上升子序列

    这里面的上生子序列logn的地方能当模板使  good

    #include<iostream>
    #include<string.h>
    #include<stdio.h>
    #include<algorithm>
    #include<vector>
    using namespace std;
    const int maxa = 6006;
    vector<int>e[maxa];
    int d[maxa];
    int a[maxa];
    int mx, n;
    void dfs(int q, int p){
        int k = lower_bound(d, d+n, a[q]) - d;
        mx = max(mx, k);
        int t = d[k];
        d[k] = a[q];
        for(int i = 0; i < e[q].size(); i++){
            if(e[q][i]!=p)
                dfs(e[q][i], q);
        }
        d[k] = t;
    }
    int main(){
        cin>>n;
        for(int i = 1; i <= n; i++)scanf("%d", a+i);
        for(int i = 1; i < n; i++){int x, y;
            scanf("%d%d", &x, &y);
            e[x].push_back(y);
            e[y].push_back(x);
        }
        for(int i =0; i <= n; i++)d[i] = (1<<30);
        for(int i = 1; i <= n; i++){
            dfs(i, 0);
        }printf("%d
    ", mx+1);
    }
    View Code
  • 相关阅读:
    grub
    init
    内核的ramdisk
    kernel信息及其相关命令
    mvc和mvvm模式
    vue从零开始(一)
    echarts自动播放图形
    echarts自定义悬浮框的显示
    typescript入门
    echarts的最外层配置项
  • 原文地址:https://www.cnblogs.com/icodefive/p/4155212.html
Copyright © 2020-2023  润新知