简单LCA
来源:互联网 发布:我做淘宝客怎么找商家 编辑:程序博客网 时间:2024/06/07 02:49
//除了输入有点坑,其他的没什么
#include <iostream>#include<stdio.h>#include<vector>#include<string>#include<string.h>using namespace std;const int maxn=900+10;vector<int>gra[maxn],ask[maxn];int fa[maxn];int anse[maxn];bool visit[maxn];int in[maxn];int num[maxn];int find(int x){ if(fa[x]==x) return x; else return fa[x]=find(fa[x]);}void un(int x,int y){ x=find(x); y=find(y); fa[y]=x;}void lca(int root){ anse[root]=root; int i; for(i=0;i<gra[root].size();i++) { int k=gra[root][i]; lca(k); un(root,k); anse[find(k)]=root; } visit[root]=true; for(i=0;i<ask[root].size();i++) { int k=ask[root][i]; if(visit[k]) { num[anse[find(k)]]++; // return ; } } return ;}int main(){ //freopen("in.txt","r",stdin); // freopen("out.txt","w",stdout); int n; while(scanf("%d",&n)!=EOF) { int i; int a,b; for(i=1;i<=n;i++) { gra[i].clear(); ask[i].clear(); fa[i]=i; } memset(visit,0,sizeof(visit)); memset(in,0,sizeof(in)); memset(num,0 ,sizeof(num)); for(i=1;i<=n;i++) { scanf("%d:(%d)",&a,&b); for(int j=1;j<=b;j++) { int k; scanf("%d",&k); in[k]++; gra[a].push_back(k); } } int m; scanf("%d",&m); //cout<<"m:"<<m<<endl; for(i=1;i<=m;i++) { //cout<<"hah"<<i<" "; char ch1[2],ch2[2]; scanf("%1s%d%d%1s",ch1,&a,&b,ch2);//输入有点坑 ask[a].push_back(b); ask[b].push_back(a); } /*for(i=1;i<=n;i++) { for(int j=0;j<ask[i].size();j++) { cout<<ask[i][j]<<" "; } cout<<endl; }*/ for(i=1;i<=n;i++) if(in[i]==0) break; lca(i); for(i=1;i<=n;i++) { if(num[i]) { cout<<i<<":"<<num[i]<<endl; } // cout<<num[i]<<endl; } } fclose(stdin); fclose(stdout); return 0;
0 0
- 简单LCA
- (简单LCA) Nearest Common Ancestors(P1330)
- LCA
- LCA
- lca
- LCA
- LCA
- lca
- LCA
- LCA
- LCA
- LCA
- LCA
- lca
- lca
- LCA
- lca
- LCA
- mysql索引的创建,查看和删除
- 学习iOS设计----iOS8的颜色、文字和布局学习
- Error1error C1189: #error : MFC does not support WINVER less than 0x0501. Please change the defi
- Cocos2d-x 3.2编译生成Android程序出错的解决方案:c++_static报错
- win7+apache2.2.25+php-5.3.4-Win32-VC6-x86.msi的配置安装问题
- 简单LCA
- Linux关闭防火墙方法
- 算法入门——递归
- 将一组数据中的元素打乱,可以当成洗牌的算法,也可以用去实现拼图游戏当中随机位置的产生
- fastjson
- java 几种远程服务调用协议的比较
- 99乘法表
- 桥接模式无法上网,虚拟网络编辑器中无法找到Vmnet0
- dirty_ratio与dirty_background_ratio两个参数区别