hiho一下 第十五周 最近公共祖先·二 - 更新一下tarjan离线LCA模板
来源:互联网 发布:qq魅力值软件 编辑:程序博客网 时间:2024/05/20 01:47
题意:
裸LCA
题解:
tarjan离线解LCA模板...
Program:
#include<iostream>#include<stdio.h>#include<math.h>#include<string.h> #include<string>#include<queue>#include<map>#include<algorithm>#define MAXN 100005#define ll long long#define oo 1e+10#define eps 1e-10using namespace std; struct node{ int u,v,id,next;}edge[MAXN],Qedge[MAXN<<1];map<string,int> H;int En,Vn,_next[MAXN],D[MAXN],father[MAXN];int Qen,Qnext[MAXN],ans[MAXN];bool visited[MAXN];char st[MAXN];string s,name[MAXN];int getdata(){ scanf("%s",st),s=st; if (H.find(s)==H.end()) H[s]=++Vn,name[Vn]=s; return H[s];}void addedgeE(int u,int v){ edge[++En].next=_next[u],_next[u]=En; edge[En].v=v;}void addedgeQ(int u,int v,int id){ Qedge[++Qen].next=Qnext[u],Qnext[u]=Qen; Qedge[Qen].v=v,Qedge[Qen].id=id;}int getfather(int u){ if (father[u]==u) return u; return father[u]=getfather(father[u]);}void tarjan(int u){ int k,v,id; father[u]=u; visited[u]=true; for (k=Qnext[u];k;k=Qedge[k].next) { v=Qedge[k].v,id=Qedge[k].id; if (!visited[v]) continue; ans[id]=getfather(v); } for (k=_next[u];k;k=edge[k].next) { v=edge[k].v; tarjan(v); father[v]=u; }} int main(){ int n,Q,i,u,v; string s; scanf("%d",&n),Vn=0,H.clear(); memset(_next,0,sizeof(_next)),En=0; memset(D,0,sizeof(D)); while (n--) { u=getdata(),v=getdata(); D[v]++; addedgeE(u,v); } scanf("%d",&Q); memset(Qnext,0,sizeof(Qnext)),Qen=0; for (i=1;i<=Q;i++) { u=getdata(),v=getdata(); addedgeQ(u,v,i),addedgeQ(v,u,i); } memset(visited,0,sizeof(visited)); tarjan(1); for (i=1;i<=Q;i++) puts(name[ans[i]].c_str()); return 0;}
0 0
- hiho一下 第十五周 最近公共祖先·二 - 更新一下tarjan离线LCA模板
- hiho一下 第十五周——最近公共祖先·二(Trajan,离线LCA)
- hiho一下 第十七周 最近公共祖先·三 更新RMQ在线解LCA
- hiho一下 第十七周 最近公共祖先
- LCA最近公共祖先(tarjan离线算法)
- HIHO #1067 : 最近公共祖先·二(并查集+dfs LCA离线算法)
- 【hiho一下】 最近公共祖先 一
- hihocoder 1067 最近公共祖先·二(tarjan LCA 离线算法O(n))
- [hiho]#1067 : 最近公共祖先·二 离线算法
- hihoCoder_#1067_最近公共祖先·二(LCA+tarjan模板)
- tarjan离线算法-LCA最近公共祖先算法模板(详细)
- Tarjan离线算法求最近公共祖先(LCA)
- POJ1986 DistanceQueries 最近公共祖先LCA 离线算法Tarjan
- Tarjan离线算法求最近公共祖先(LCA)
- Tarjan离线算法求最近公共祖先(LCA)
- [图论] LCA(最近公共祖先)Tarjan 离线算法
- POJ 1330 最近公共祖先LCA(Tarjan离线做法)
- LCA(最近公共祖先)离线算法Tarjan
- jquery的几种异步请求,ajax
- 模版:使用Hibernate5个核心接口
- Hibernate基于XML的----联合主键配置
- linux的解压和压缩的命令集
- Linux下编译hadoop2.5.1源码
- hiho一下 第十五周 最近公共祖先·二 - 更新一下tarjan离线LCA模板
- 请控制好你的情绪--职场情绪管理
- datatable1.9 与datatable1.10取数据区别
- 字符串相关题目
- 论证是一门学问 如何让你的观点有说服力-9 规则9 事件发生的概率或许至关重要
- android4.0触摸屏滑鼠模式解决方法-添加idc文件
- 面向对象(二)——装箱、equals、单例类、接口、模式
- Android 数据访问之External Storage 数据保存在sd卡 demo+笔记
- java线程题目