【1063】Set Similarity (25 分)

简介: 【1063】Set Similarity (25 分)【1063】Set Similarity (25 分)
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>  
#include<map>
#include<vector>
#include<queue> 
#include<set>
using namespace std; 
//用set去重,查看x集合某元素在y集合中是否出现
//用if   st[y].find(*it) !=st[y].end,如果能fine得到会返回对应值的迭代器
const int N=51;
set<int> st[N];  //N个集合
void compare(int x,int y){ //比较集合st[x]与集合st[y]
  int totalNum=st[y].size(),sameNum=0; //不同数的个数、相同数的个数
  //遍历集合st[x]
  for(set<int>::iterator it=st[x].begin(); it != st[x].end(); it++){
    if(st[y].find(*it) != st[y].end())  sameNum++; //在st[y]中能找到该元素
    else totalNum++;  //在st[y]中不能找到该元素
  }
  printf("%.1f%%\n",sameNum*100.0 /totalNum); //输出比率
}
int main(){   
  int n,k,q,v,st1,st2;
  scanf("%d",&n);  //集合个数
  for(int i=1;i<=n;i++){
    scanf("%d",&k); //集合i中的元素个数
    for(int j=0;j<k;j++){
      scanf("%d",&v);  //集合i中的元素v
      st[i].insert(v); //将元素v加入集合st[i]中
    }
  }
  scanf("%d",&q);  //q个查询
  for(int i=0;i<q;i++){ 
    scanf("%d%d",&st1,&st2);  //欲对比的集合编号
    compare(st1,st2);  //比较两个集合
  }
  system("pause"); 
    return 0;   
}
相关文章
|
C++ Windows 容器
【PAT甲级 - C++题解】1063 Set Similarity
【PAT甲级 - C++题解】1063 Set Similarity
51 0
|
1月前
|
存储 JavaScript 前端开发
Set、Map、WeakSet 和 WeakMap 的区别
在 JavaScript 中,Set 和 Map 用于存储唯一值和键值对,支持多种操作方法,如添加、删除和检查元素。WeakSet 和 WeakMap 则存储弱引用的对象,有助于防止内存泄漏,适合特定场景使用。
|
2月前
|
存储 Java API
【数据结构】map&set详解
本文详细介绍了Java集合框架中的Set系列和Map系列集合。Set系列包括HashSet(哈希表实现,无序且元素唯一)、LinkedHashSet(保持插入顺序的HashSet)、TreeSet(红黑树实现,自动排序)。Map系列为双列集合,键值一一对应,键不可重复,值可重复。文章还介绍了HashMap、LinkedHashMap、TreeMap的具体实现与应用场景,并提供了面试题示例,如随机链表复制、宝石与石头、前K个高频单词等问题的解决方案。
37 6
【数据结构】map&set详解
|
1月前
|
存储 缓存 Java
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
34 1
|
2月前
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
36 5
|
2月前
|
存储 JavaScript 前端开发
js的map和set |21
js的map和set |21
|
2月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
3月前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
3月前
|
Java
【Java集合类面试二十二】、Map和Set有什么区别?
该CSDN博客文章讨论了Map和Set的区别,但提供的内容摘要并未直接解释这两种集合类型的差异。通常,Map是一种键值对集合,提供通过键快速检索值的能力,而Set是一个不允许重复元素的集合。
|
3月前
|
存储 JavaScript 前端开发
ES6新特性(四): Set 和 Map
ES6新特性(四): Set 和 Map