题目连接

https://pintia.cn/problem-sets/994805046380707840/problems/994805070149828608

视频讲解

https://www.bilibili.com/video/BV1sS4y1N7cU

思路

这道题其实难点在于理解题意,其中的 NcN_cNc​ 其实就是两个集合的交集的元素个数, NtN_tNt​ 就是两个集合合并后的元素个数(去重),那么我们利用set 或者 map就能很好的实现这个操作,我们定义 Nset 然后我们查找 lr的重复度的时候直接选取一个集合作为操作集合查找一下两个集合中元素的重复个数就得到了 NcN_cNc​ ,然后再用两个集合的元素的个数减去 NcN_cNc​ 就得到了 NtN_tNt​

代码

set

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>
#define INF 0x3f3f3f3fconst int N = 55;
int n,m;set<int> mp[N];
double ans[N][N];double compare(int l,int r) {double nc,nt;nc = 0;nt = double(mp[l].size() + mp[r].size());for(auto it : mp[l]){if(mp[r].find(it) != mp[r].end()) nc += 1.0;}nt -= nc;return (nc/nt) * 100.0;
}int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;int k;for(int i = 1;i <= n; ++i) {cin>>m;for(int j = 1;j <= m; ++j){cin>>k;mp[i].insert(k);}}cin>>m;while(m--){int l,r;cin>>l>>r;cout<<fixed<<setprecision(2)<<compare(l,r)<<"%"<<endl;;}return 0;
}

map

但是不知道为何使用map会wa,后面再填坑吧

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>
#define INF 0x3f3f3f3fconst int N = 55;
int n,m;map<int,bool> mp[N];
double ans[N][N];double compare(int l,int r) {double nc,nt;nc = 0;nt = double(mp[l].size() + mp[r].size());for(auto it : mp[l]){if(mp[r][it.first] == true) nc += 1.0;}nt -= nc;return (nc/nt) * 100.0;
}int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;int k;for(int i = 1;i <= n; ++i) {cin>>m;mp[i].clear();for(int j = 1;j <= m; ++j){cin>>k;mp[i][k] = true;}}cin>>m;while(m--){int l,r;cin>>l>>r;cout<<fixed<<setprecision(2)<<compare(l,r)<<"%"<<endl;;}return 0;
}

L2-005 集合相似度(STL+暴力)相关推荐

  1. L2-005 集合相似度(STL)

    题目链接:L2-005 集合相似度 考查知识:STL 题意描述: 给定两个整数集合,它们的相似度定义为:两个集合都有的不相等整数的个数 比上 两个集合一共有的不相等整数的个数. 计算任意一对给定集合的 ...

  2. L2-005 集合相似度-PAT团体程序设计天梯赛GPLT

    题目来源:团体程序设计天梯赛-练习集 题目地址:L2-005 集合相似度 题目大意 给定 nnn 个集合,然后有 kkk 次询问,每次询问都要求出 Nc/Nt×100%N_c / N_t \times ...

  3. 天梯赛---7-6 集合相似度 (25分)

    7-6 集合相似度 (25分) 给定两个整数集合,它们的相似度定义为:N​c​​/N​t​​×100%.其中N​c​​是两个集合都有的不相等整数的个数,N​t​​是两个集合一共有的不相等整数的个数.你 ...

  4. 7-9 集合相似度 (25 分)(天梯赛练习题)

    7-9 集合相似度 (25 分) 给定两个整数集合,它们的相似度定义为:Nc​/Nt​×100%.其中Nc​是两个集合都有的不相等整数的个数,Nt​是两个集合一共有的不相等整数的个数.你的任务就是计算 ...

  5. L2-005 集合相似度 (25分)

    L2-005 集合相似度 (25分) 给定两个整数集合,它们的相似度定义为:N​c/N​t​​ ×100%.其中N​c 是两个集合都有的不相等整数的个数,N​t是两个集合一共有的不相等整数的个数.你的 ...

  6. 7-9 集合相似度 (25 分)(交集/并集)

    7-9 集合相似度 (25 分) 给定两个整数集合,它们的相似度定义为:Nc​/Nt​×100%.其中Nc​是两个集合都有的不相等整数的个数,Nt​是两个集合一共有的不相等整数的个数.你的任务就是计算 ...

  7. 【CCCC】L2-005 集合相似度 (25分),维护set数组去重,比较统计

    problem L2-005 集合相似度 (25分) 给定两个整数集合,它们的相似度定义为:N ​c ​​ /N ​t ​​ ×100%.其中N ​c ​​ 是两个集合都有的不相等整数的个数,N ​t ...

  8. 7-9 集合相似度 (25分)

    7-9 集合相似度 (25分) 给定两个整数集合,它们的相似度定义为:N ​c ​​ /N ​t ​​ ×100%.其中N ​c ​​ 是两个集合都有的不相等整数的个数,N ​t ​​ 是两个集合一共 ...

  9. 7-10 集合相似度 (25分)

    超时代码 // // Created by HMN on 2020/1/27. // /*7-10 集合相似度 (25分) 给定两个整数集合,它们的相似度定义为:N ​c ​​ /N ​t ​​ ×1 ...

  10. 数据结构查找-7-4 集合相似度 (25 分)

    7-4 集合相似度 (25 分) 给定两个整数集合,它们的相似度定义为:Nc​/Nt​×100%.其中Nc​是两个集合都有的不相等整数的个数,Nt​是两个集合一共有的不相等整数的个数.你的任务就是计算 ...

最新文章

  1. 偷天换日,逼真的天空置换算法
  2. vcm驱动芯片原理_T6322A|电源芯片的内部设计是怎样的?
  3. 关于SPECjAppServer评测,您应该知道的“故事”
  4. 高级程序员值得一看的33本编程书籍
  5. 计算机课组会议讲话,在计算机部教师会议上的讲话
  6. Hadoop/Spark相关面试问题总结
  7. linux使用环境实验报告,Linux 及其使用环境实验报告.doc
  8. maven项目 ant_将大型项目从Ant迁移到Maven
  9. 新手关于如何看编程经典书的一些疑惑?
  10. 程序阅读:简单C++学生信息管理系统
  11. 穿越者的真正优势是人才
  12. 通过FTP实现上传和下载
  13. 【Java 常用类】java.util包(5)Date类的常用方法
  14. 游戏设计的100个原理(6-10)
  15. asp 文件上传(ASPUpload组件上传)
  16. Docker中级篇,看这篇就对了
  17. 带有vlan tag的报文与网卡的交互关系
  18. 程序员鄙视链, 所有工程师都鄙视php工程师, 为什么
  19. Unity优化☀️光照烘焙
  20. 使用libimobiledevice在linux上挂载iphone6

热门文章

  1. 生产者-消费者习题的运用
  2. ubuntu 16.04 重装失败:进入grub出不来
  3. JavaScript - 测试 jQuery
  4. 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---35
  5. 固定尺寸内存块的缓冲队列类及C++实现源代码
  6. CAnimation-模拟时钟
  7. 【CentOS】 Nginx+jdk+tomcat 环境搭建
  8. cmake常用语法参考
  9. 聊聊 API Gateway 和 Netflix Zuul
  10. jni java与c++交互返回三维数组jobjectArray