zoukankan      html  css  js  c++  java
  • hdu3974Assign the task

    View Code
    /*hdu3974Assign the task
    并查集
    建立集合:v u表示v是u的下属
    T x y 当x被分配到y任务时,他和下属的任务立刻变更为y
    C x 询问x当前所分配的任务

    task[i]表示i最后直接接到分配的任务 num[i]表示i接到任务的序号
    当询问x时 只要找到祖先中最迟分配到的任务,即num[i]最大相对应的task[i]
    */
    #include
    <iostream>
    #include
    <algorithm>
    using namespace std;
    const int maxn=50001;
    int pre[maxn],vis[maxn],task[maxn];
    int find(int x)
    {
    int ans=task[x],t=vis[x];
    int r=x;
    while(pre[r]!=r)
    {
    int pa=pre[r];
    if(t<vis[pa])
    {
    ans
    =task[pa];
    t
    =vis[pa];
    }
    r
    =pre[r];
    }
    return ans;

    }
    int main()
    {
    int cas,Cas=0;
    cin
    >>cas;
    while(cas--)
    {
    int n,v,u;
    cin
    >>n;
    memset(vis,
    0,sizeof(vis));
    memset(task,
    -1,sizeof(task));
    for(int i=1;i<=n;i++)pre[i]=i;
    for(int i=1;i<n;i++)
    {
    cin
    >>v>>u;
    pre[v]
    =u;
    }
    int num=0;
    int m,x,y;
    cin
    >>m;
    char ch;
    cout
    <<"Case #"<<++Cas<<":"<<endl;
    for(int i=0;i<m;i++)
    {
    cin
    >>ch;
    if(ch=='T')
    {
    cin
    >>x>>y;
    task[x]
    =y;
    vis[x]
    =++num;
    }
    else
    {
    cin
    >>x;
    cout
    <<find(x)<<endl;
    }
    }
    }
    }

  • 相关阅读:
    Python之路,day16-Python基础
    Python之路,day15-Python基础
    Python之路,day14-Python基础
    django之model操作
    django信号
    django缓存
    CSRF的攻击与防范
    cookie和session
    http协议之Request Headers
    ajax参数详解
  • 原文地址:https://www.cnblogs.com/sook/p/2158991.html
Copyright © 2011-2022 走看看