uva 12648
一个简单的搜索;
反正树的结构不会变,只需要把节点的名称换一下就行;
可惜比赛的时候思路不清晰;
#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的更多相关文章
- uva 1354 Mobile Computing ——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5
- UVA 10564 Paths through the Hourglass[DP 打印]
UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...
- UVA 11404 Palindromic Subsequence[DP LCS 打印]
UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...
- UVA&&POJ离散概率与数学期望入门练习[4]
POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...
- UVA计数方法练习[3]
UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...
- 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 ...
- UVA - 1625 Color Length[序列DP 代价计算技巧]
UVA - 1625 Color Length 白书 很明显f[i][j]表示第一个取到i第二个取到j的代价 问题在于代价的计算,并不知道每种颜色的开始和结束 和模拟赛那道环形DP很想,计算这 ...
- UVA - 10375 Choose and divide[唯一分解定理]
UVA - 10375 Choose and divide Choose and divide Time Limit: 1000MS Memory Limit: 65536K Total Subm ...
- 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 ...
随机推荐
- 关于SQL语言分类
从功能上划分,SQL语言可以分为DDL,DML和DCL三大类. 事务:可以作用在DML(update.insert.delete)语句上. 1. DDL(Data Definition Languag ...
- TreeMap与TreeSet的实现
虽然TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常用实现类,但TreeSet底层是通过 TreeMap来实现的,因此二者的实现方式完全一样.而 TreeMap ...
- Android开发了解——AAPT
aapt即Android Asset Packaging Tool , 在SDK的build-tools目录下. 该工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk). 也 ...
- EL标签库
首先要导入jar包 jst1.jar standard.jar 在页面中引入标签库 <%@taglib uri="..." prefix=".."%& ...
- asp.net服务器页面处理过程
一.静态页面.动态页面区别 静态页面是服务端直接从硬盘里面读取然后发回去,动态页面就要创建这个页面类的对象,调用对象的方法,方法里面什么就发回什么.浏览器请求asp.net页面实际是请求asp.net ...
- 在C#中创建类型
重载构造函数: using System; public class Wine { public decimal Price; public int Year; public Wine (decima ...
- Linux系统各发行版镜像下载
Linux系统各发行版镜像下载(2014年10月更新),如果直接下载不了,请使用迅雷下载.并且注意,我的下载地址,在 迅雷 里才起作用. 包括Ubuntu,Fedora,SUSE,Red Hat En ...
- [04] SQL语句优化之索引
1.索引的概念 根据书的目录可以知道内容所在的页码,不用一页一页翻书,可直接通过页码找到内容.数据库的索引类似于书本的目录,索引指向内容存储位置,可直接定位到内容而不必扫描整张表,减少了磁盘的I/O次 ...
- IOS 高级开发 KVC(二)
前一篇博客最后介绍了KVC 再json 转模型时遇到一些问题.今天接着来介绍KVC 的其他用法.其实我们在一开始的时候就一直再强调命名的重要性.命名规范是KVC 存活的基础.如果没有这个条件支撑,那么 ...
- C#5.0之后推荐使用TPL(Task Parallel Libray 任务并行库) 和PLINQ(Parallel LINQ, 并行Linq). 其次是TAP(Task-based Asynchronous Pattern, 基于任务的异步模式)
学习书籍: <C#本质论> 1--C#5.0之后推荐使用TPL(Task Parallel Libray 任务并行库) 和PLINQ(Parallel LINQ, 并行Linq). 其次是 ...