1063. Set Similarity (25) 并查集
来源:互联网 发布:连通区域图像分割算法 编辑:程序博客网 时间:2024/06/11 11:29
传送门://https://www.patest.cn/contests/pat-a-practise/1063
AC 代码. 不难,典型的并查集考察.
#include <iostream>#include <string>#include <cstdio>#include <vector>#include <queue>#include <algorithm>#include <stack>#include <set>#include <cmath>#include <map>using namespace std;int main(){ int n,k,t,m,query1,query2; scanf("%d",&n); vector<set<int>> ans; for (int i=0; i<n; ++i) { scanf("%d",&k); set<int> s; for (int j=0; j<k; ++j) { scanf("%d",&t); s.insert(t); } ans.push_back(s); } scanf("%d",&m); for (int i=0; i<m; ++i) { scanf("%d %d",&query1,&query2); query1--; query2--; vector<int> diff(ans[query1].size()+ans[query2].size()); vector<int> unio(ans[query1].size()+ans[query2].size()); auto it = set_intersection(ans[query1].begin(),ans[query1].end(), ans[query2].begin(), ans[query2].end(), diff.begin()); diff.resize(it-diff.begin()); it = set_union(ans[query1].begin(),ans[query1].end(), ans[query2].begin(), ans[query2].end(), unio.begin()); unio.resize(it-unio.begin()); int len1 = (int)diff.size(),len2 =(int)unio.size(); double r = len1*100.0/(len2*1.0); printf("%.1lf%%\n",r); } return 0;}
0 0
- 1063. Set Similarity (25) 并查集
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 【图论】单源点最短路模板(有向图)Dijkstra
- Find The Duplicate Number
- python 一个简单的依靠文件来判断key是否重复的方法
- 深入研究java.lang.Object类
- Linux 的启动流程
- 1063. Set Similarity (25) 并查集
- kafka学习教程
- curl,用法實例
- 正则表达式相关网址
- iOS新方法systemFontOfSize: weight:
- framework开发中积累的小知识
- SurfaceView你所应该知道的事
- linux tomcat 8080端口 访问不了 centeOS防火墙问题
- android应用程序如何调用支付宝接口