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 ...
随机推荐
- 使用DS18B20设计温控系统
datasheet真的是得看看啊,比如DS18B20,不然程序都不好写,美国DALLAS半导体公司推出的数字化温度传感器DS18B20采用单总线协议,即与单片机接口仅需要一个IO口,无需任何外部原件, ...
- CentOS 7下的软件安装方法及策略
一些废话 2010年开始正式接触Linux,入门发行版是Ubuntu 10.10,后来过渡到Ubunu 11.04,这其中也尝试了很多其他主流的发行版.进入实验室之后,开始用CentOS 5,然后是C ...
- PHP之curl
当我第一次接触curl的时候,看文档,以及网上search各种资料,官方(http://cn2.php.net/manual/en/intro.curl.php)的解释是,这是某大牛写的一个libcu ...
- Android开发之闹钟
闹钟开发: 1.需要时间选择器TimePicker 2.需要Calendar类对日期时间进行操作 3.需要AlarmManager//闹钟管理实质是一个全局定时器, 是Android中常用的一种系统级 ...
- Linux下chkconfig命令详解即添加服务以及两种方式启动关闭系统服务
The command chkconfig is no longer available in Ubuntu.The equivalent command to chkconfig is update ...
- Mysql_存储功能
先上一段代码: -->DELIMETER; ----加上这一句:DELIMETER的作用是设定客户机的分隔符,表示用//包含的是一段程序,一起执行,而不是见到“:”就执行 结束的时候写上 ...
- xp 中的IIS安装成功之后,访问网页显示没有权限访问解决方法
在做xp的IIS发布网站时遇到一个问题就是当你访问网站的时候,显示没有权限访问网站,但是我已经开启了匿名访问网站了,怎么还没有权限访问呢?后来经过上网搜资料解决,当时很多网上都说没打开匿名访问,当时我 ...
- ###Canny边缘检测算子
开源中国. #@date: 2014-06-20 #@author: gerui #@email: forgerui@gmail.com 一.一阶微分边缘算子 1. 一阶微分边缘检测算子也称梯度边缘算 ...
- 使用CHttpFile从服务器端正确的读取数据
前段时间在给软件做升级提示模块的时候发现一个问题,就是使用CHttpFile对象无法从服务器端获取到正确的响应数据长度,无论是使用CHttpFile:: QueryInfo方法,还是使用CHttpFi ...
- 信息收集->DNS分析->dnsdict6
如何获取域名的IPV4/IPV6地址之dnsdict6的使用 dnsdict6是一个用于获取网站信息的工具.dnsdict6可以扫描网站并显示有多少域或者子域,也可以扫描ipv6/ipv4地址.dns ...