hiho 1335 Email Merge
来源:互联网 发布:dota之最强血脉知轩 编辑:程序博客网 时间:2024/06/17 06:03
#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;string s;map<string,int> too;map<int,string> findd;int cnt;bool flag[maxn];vector<int> edge[maxn];vector<int> res[maxn];int main(){ int t,n,i,j; scanf("%d",&t); cnt=t; for(i=1;i<=t;i++) { cin>>s; too[s]=i; findd[i]=s; scanf("%d",&n); while(n--) { cin>>s; if(!too[s]) { too[s]=++cnt; findd[cnt]=s; } edge[i].push_back(too[s]); edge[too[s]].push_back(i); } } cnt=0; for(i=1;i<=t;i++) { if(flag[i]) continue; queue<int> que; res[++cnt].push_back(i); que.push(i); flag[i]=true; while(que.size()) { int now=que.front(); que.pop(); for(vector<int>::iterator it=edge[now].begin();it!=edge[now].end();it++) { if(flag[*it]) continue; que.push(*it); if(*it<=t) res[cnt].push_back(*it); flag[*it]=true; } } sort(res[cnt].begin(),res[cnt].end()); } for(i=1;i<=cnt;i++) { cout<<findd[*(res[i].begin())]; for(vector<int>::iterator it=res[i].begin()+1;it!=res[i].end();it++) cout<<' '<<findd[*it]; cout<<endl; } return 0;}
阅读全文
0 0
- hiho 1335 Email Merge
- Email Merge hiho一下第171周
- hiho一下第171周《Email Merge》
- [Hihocoder]1335 : Email Merge (并查集)
- 并查集解1335 : Email Merge(hihocoder)
- Email Merge——hihoCoder171
- hiho~
- python 定义函数
- Java 集合系列17之 TreeSet详细介绍(源码解析)和使用示例
- bjui用框架提交form表单
- YUMI(多重启动u盘制作工具)官方正式版V2.0.5.0下载 | YUMI UEFI | yumi多重启动u盘制作工具
- 网页知识
- hiho 1335 Email Merge
- qtcreator不能显示文件树状图
- 四轴
- spring下载地址
- TensorFlow学习_(2)基于TensorFlow的神经网络
- 参数传递、值传递
- 第一章:网页设计简介
- HTML+CSS+JS知识点汇总
- 自我的描述