专业跟队形

唯一一个有$\LaTeX$的

裸的$LCA$,我用的是$Tarjan~LCA$,注意两点相同特判

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=;
struct edge{
int next,to;
}e[maxn],q[maxn<<];
int n,m,s,head[maxn],cnt,ans[maxn],heads[maxn],f[maxn],cntc;
bool vis[maxn];
int find(int x)
{
return x==f[x]?x:f[x]=find(f[x]);
}
void add(int x,int y)
{
e[++cnt].next=head[x];
e[cnt].to=y;
head[x]=cnt;
}
void adds(int x,int y)
{
q[++cnt].next=heads[x];
q[cnt].to=y;
heads[x]=cnt;
}
void tarjan(int x,int pre)
{
for(int v,i=head[x];i;i=e[i].next)
{
if((v=e[i].to)==pre)
continue;
tarjan(v=e[i].to,x);
int f1=find(x),f2=find(v);
if(f1!=f2)
f[f2]=f1;
}
for(int i=heads[x];i;i=q[i].next)
if(vis[q[i].to])
ans[(i+)>>]=find(q[i].to);
vis[x]=;
}
int main()
{
scanf("%d",&s);
while(s--)
{
scanf("%d",&n);
cnt=;
memset(head,,sizeof(head));
memset(heads,,sizeof(heads));
memset(vis,,sizeof(vis));
for(int x,num,i=;i<=n;i++)
{
scanf("%d",&num);
for(int j=;j<=num;j++)
{
scanf("%d",&x);
add(i,x);
}
}
scanf("%d",&m);
cnt=;
for(int x,y,i=;i<=m;i++)
{
scanf("%d%d",&x,&y);
if(x==y)
ans[i]=x;
adds(x,y),adds(y,x);
}
for(int i=;i<=n;i++)
f[i]=i;
tarjan(,);
printf("Case %d:\n",++cntc);
for(int i=;i<=m;i++)
printf("%d\n",ans[i]);
}
return ;
}

最新文章

  1. 使用AngularJS实现简单:全选和取消全选功能
  2. Android版2048
  3. C++ STL之list容器的基本操作
  4. key 限制字符的输入
  5. DBA日常工作职责 - 我对DBA的七点建议
  6. KVO的概述的使用
  7. (转)js正则表达式之中文验证
  8. RHEL 7.0 修改防火墙配置
  9. JVM虚拟机选项:Xms Xmx PermSize MaxPermSize区别
  10. MvcMailer通过ASP.NET MVC Razor视图和基架发送邮件
  11. [读书笔记]xampp mysql启动失败解析(win7)
  12. JS分号 惹的坑
  13. Python内置函数(23)——dict
  14. python-memcached学习笔记
  15. JAVA进阶20
  16. 安装jar包到maven仓库
  17. 给xen虚拟机添加硬盘分区格式化
  18. Hibernate 离线对象构建通用查询
  19. PHP简单操作SqlServer数据库。
  20. NonWindowJoin

热门文章

  1. JavaWeb开发之详解Servlet及Servlet容器
  2. BZOJ5462 APIO2018新家(线段树+堆)
  3. java保留两位小数和js保留两位小数一致性研究
  4. Spring中 &lt;context:property-placeholder 的使用与解析 .properties 配置文件的加载
  5. Spring中Model,ModelMap以及ModelAndView之间的区别
  6. MySQL--&gt;高级--&gt;001--&gt;MySQL备份与恢复测试
  7. java生成棋盘
  8. 安装hadoop1.2.1(参考hadoop实战第二版)
  9. Hadoop生态圈-flume日志收集工具完全分布式部署
  10. MySQL事务及隔离级别详解