一个简单的搜索;

反正树的结构不会变,只需要把节点的名称换一下就行;

可惜比赛的时候思路不清晰;

 #include<cstdio>
#define maxn 5050
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
int age[maxn];
int biao[maxn];
bool vis[maxn];
vector<int>ve[maxn],pa[maxn];
char s[];
int ans;
void dfs(int x,int v)
{
vis[x]=;
pa[v].push_back(x);
int l=ve[x].size();
for(int i=;i<l;i++)
{
if(vis[ve[x][i]])continue;
dfs(ve[x][i],v);
}
} int main()
{
// freopen("data.in","r",stdin);
int n,m,q,x,y;
while(scanf("%d%d%d",&n,&m,&q)!=EOF)
{
for(int i=;i<=n;i++){ve[i].clear(),pa[i].clear();}
for(int i=;i<=n;i++)biao[i]=i;
for(int i=;i<=n;i++)scanf("%d",&age[i]);
for(int i=;i<m;i++)
{
scanf("%d%d",&x,&y);
ve[y].push_back(x);
}
for(int i=;i<=n;i++)
{
memset(vis,,sizeof vis);
vis[i]=;
int l=ve[i].size();
for(int j=;j<l;j++)
if(!vis[ve[i][j]])dfs(ve[i][j],i);
}
for(int i=;i<q;i++)
{
scanf("%s",s);
if(s[]=='T')
{
scanf("%d%d",&x,&y);
swap(age[biao[x]],age[biao[y]]);
swap(biao[x],biao[y]);
}
else
{
ans=;
scanf("%d",&x);
x=biao[x];
int l=pa[x].size();
for(int j=;j<l;j++)ans=min(ans,age[pa[x][j]]);
if(ans==)puts("*");
else printf("%d\n",ans);
}
}
}
return ;
}

uva 12648的更多相关文章

  1. uva 1354 Mobile Computing ——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5

  2. UVA 10564 Paths through the Hourglass[DP 打印]

    UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...

  3. UVA 11404 Palindromic Subsequence[DP LCS 打印]

    UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...

  4. UVA&&POJ离散概率与数学期望入门练习[4]

    POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...

  5. UVA计数方法练习[3]

    UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...

  6. UVA数学入门训练Round1[6]

    UVA - 11388 GCD LCM 题意:输入g和l,找到a和b,gcd(a,b)=g,lacm(a,b)=l,a<b且a最小 g不能整除l时无解,否则一定g,l最小 #include &l ...

  7. UVA - 1625 Color Length[序列DP 代价计算技巧]

    UVA - 1625 Color Length   白书 很明显f[i][j]表示第一个取到i第二个取到j的代价 问题在于代价的计算,并不知道每种颜色的开始和结束   和模拟赛那道环形DP很想,计算这 ...

  8. UVA - 10375 Choose and divide[唯一分解定理]

    UVA - 10375 Choose and divide Choose and divide Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  9. UVA - 11584 Partitioning by Palindromes[序列DP]

    UVA - 11584 Partitioning by Palindromes We say a sequence of char- acters is a palindrome if it is t ...

随机推荐

  1. nyoj 96 n-1位数(处理前导 0 的情况)

    n-1位数 时间限制:3000 ms  |            内存限制:65535 KB 难度:1   描述 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则 ...

  2. 对css float 浮动的学习心得

    css float浮动详解 @(css float)[hasLayout|clear float|妙瞳] css float的定义和用法 float 属性定义元素在哪个方向浮动.以往这个属性总应用于图 ...

  3. react ie10下报错

    解决办法: 加 promise polyfill 参考地址:http://hao.jser.com/archive/12066/

  4. 关于 I/O Wait

    I/O wait is a per-CPU performance metric showing time spent idle, when there are threads on the CPU ...

  5. c# json转Dictionary字典

     JavaScriptSerializer s = new JavaScriptSerializer();  string jsonTexts = "{\"count\" ...

  6. 动态上传多个文件(asp)

    CreateElements.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...

  7. HTML <input> 标签的 type 属性

    HTML <input> 标签的 type 属性 HTML <input> 标签 实例 下面的表单拥有两个输入字段以及一个提交按钮: <form action=" ...

  8. Linq 查询 与方法调用

    通常,使用linq查询时需要一个实现IQueryable<T> 的查询对象 public class DataA<T> : IQueryable<T> {....} ...

  9. CLR has been unable to transition from COM context for 60 seconds

    Original link: http://blog.wpfwonderland.com/2007/08/16/clr-has-been-unable-to-transition-from-com-c ...

  10. 《C#入门典》

    这本书算是我读的第一本关于.NET的书. 上大学的时候,教我们课的老师经常给我们安利"Wrox红皮书",说这是程序员写给程序员的书,有很高的参考价值. 这本书的电子版,有1000多 ...