POJ 1470 LCA

来源:互联网 发布:云计算的特征是什么 编辑:程序博客网 时间:2024/05/22 01:17

哎 越来越不行了 把“%1s"写成”%s" 错了n次 坑爹啊

#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;const int maxn=1007;vector<int> g[maxn];vector<int> un[maxn];int father[maxn];bool vis[maxn];int cnt[maxn];int find(int x){ if(father[x]!=x) { father[x]=find(father[x]); } return father[x];}void tarjan(int u){vis[u]=true;father[u]=u;int i,v;for(i=0;i<un[u].size();i++){v=un[u][i];if(vis[v]){cnt[find(v)]++;}}for(i=0;i<g[u].size();i++){v=g[u][i];if(!vis[v]){tarjan(v);father[v]=u;}}}int main(){int n,m,u,v;char stmp1[20],stmp2[20];while(~scanf("%d",&n)){int i,j;for(i=0;i<maxn;i++){g[i].clear();un[i].clear();}memset(father,0,sizeof(father));for(i=0;i<n;i++){scanf("%d%2s%d%1s",&u,stmp1,&m,stmp2);for(j=0;j<m;j++){scanf("%d",&v);g[u].push_back(v);father[v]++;}}scanf("%d",&m);for(i=0;i<m;i++){scanf("%1s%d%d%1s",stmp1,&u,&v,stmp2);un[u].push_back(v);un[v].push_back(u);}for(i=1;i<=n;i++){if(father[i]==0){break;}}memset(vis,0,sizeof(vis));memset(cnt,0,sizeof(cnt));tarjan(i);for(i=1;i<=n;i++){if(cnt[i]){    printf("%d:%d\n",i,cnt[i]);}}}return 0;}