Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <stdio.h>#include <string.h>#include <vector>#include <map>#include <string>using namespace std;const int MAXN = 100005;int n,m,node,tol,vis[MAXN],fst[MAXN],nxt[MAXN],v[MAXN],pa[MAXN],one[MAXN],oth[MAXN],ans[MAXN];vector<int> ask[MAXN]; // 参与的询问的编号map<int,string> recode;map<string,int> encode;void Edge(int a,int b){v[tol] = b;pa[b] = a;nxt[tol] = fst[a];fst[a] = tol++;}void init(){recode.clear();encode.clear();memset(fst,-1,sizeof(fst));scanf("%d",&n);node = 0;tol = 0;string a,b;pa[1] = 1;for(int i=0;i<n;i++){cin>>a>>b;if(!encode[a]) {encode[a] = (++node);recode[node] = a;ask[node].clear();}if(!encode[b]) {encode[b] = (++node);recode[node] = b;ask[node].clear();}