• AC日记——825G


    825G - Tree Queries

    思路:

      神题,路径拆成半链;

    代码:

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    #define maxn 1000005
    #define INF 0x3f3f3f3f
    int n,m,val[maxn],head[maxn],E[maxn<<1],V[maxn<<1];
    int cnt,root,last,ans=INF;
    inline void in(int &now)
    {
        char Cget=getchar();now=0;
        while(Cget>'9'||Cget<'0') Cget=getchar();
        while(Cget>='0'&&Cget<='9')
        {
            now=now*10+Cget-'0';
            Cget=getchar();
        }
    }
    void dfs(int now,int fa,int Min)
    {
        val[now]=min(now,Min),Min=min(now,Min);
        for(int i=head[now];i;i=E[i])
        {
            if(fa==V[i]) continue;
            dfs(V[i],now,Min);
        }
    }
    int main()
    {
        //freopen("data.txt","r",stdin);
        in(n),in(m);int u,v;
        for(int i=1;i<n;i++)
        {
            in(u),in(v);
            E[++cnt]=head[u],V[cnt]=v,head[u]=cnt;
            E[++cnt]=head[v],V[cnt]=u,head[v]=cnt;
        }
        in(root),in(root),root=root%n+1,dfs(root,0,INF);
        for(int i=1;i<m;i++)
        {
            in(u),in(v);
            v=(last+v)%n+1;
            if(u==1) ans=min(val[v],ans);
            if(u==2) last=min(ans,val[v]),printf("%d
    ",last);
        }
        return 0;
    }
  • 相关阅读:
    [每日短篇] 1C
    项目Alpha冲刺 Day12
    项目Alpha冲刺 Day12
    [转载]MVC中单用户登录
    GitLab
    Git 版本控制
    Jenkins持续集成
    Jenkins安装
    Docker 网络基础原理
    java中内存的使用
  • 原文地址:https://www.cnblogs.com/IUUUUUUUskyyy/p/7223511.html
Copyright © 2020-2023  润新知