当前位置: 首页 > news >正文

天梯赛 L2-005 集合相似度

很简单的一道L2,直接使用unoredred_map记录两个数组的交集和并集即可。

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
typedef long long ll;
const int N = 1010;
const int mod = 998244353;
void solve() {
	int n;
	cin>>n;
	vector<vector<int>> a(n+1);
	for(int i = 1 ; i <= n ; i++){
		int m;
		cin>>m;
		for(int j = 1 ; j <= m ; j++){
			int x;
			cin>>x;
			a[i].push_back(x);
		}
	}
	int k;
	cin>>k;
	for(int i = 1 ; i <= k ; i++){
		int x,y;
		cin>>x>>y;
		unordered_map<int,int> mp1,mp2;
		for(int j = 0 ; j < a[x].size() ; j++){
			mp1[a[x][j]]++;
		}
		for(int j = 0 ; j < a[y].size() ; j++){
			if(mp1[a[y][j]]){    //在第一个集合中出现,就放到mp2中,mp2的长度就是交集的大小
				mp2[a[y][j]]++;
			}
		}
		int n1 = mp2.size();
		for(int j = 0 ; j < a[y].size() ; j++){
			mp1[a[y][j]]++;
		}
		int n2 = mp1.size();
		double ans = n1 * 1.0 / n2 * 100.0;
		printf("%.2lf%\n",ans);
	}
}
signed main() {
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int tt = 1;
    //    cin >> tt;
    while (tt--) {
        solve();
    }
    return 0;
}

相关文章:

  • 配置 VSCode 的 C# 开发环境
  • 山寨币ETF的叙事,不灵了?
  • 【css酷炫效果】纯CSS实现全屏粒子连线
  • sparksql的Transformation与 Action操作
  • 解决git init 命令不显示.git
  • 3.1 在VisionPro脚本中添加CogGraphicLabel
  • LeetCode 热题 100_跳跃游戏(78_55_中等_C++)(贪心算法)
  • 技术路线图ppt模板_流程图ppt图表_PPT架构图
  • 购物车全选功能
  • Api架构设计--- HTTP + RESTful
  • C++和标准库速成(八)——指针、动态数组、const、constexpr和consteval
  • dataframe数据形式操作中的diff和shift函数区别与对比
  • 自交互学习:计算病理学中用于分子特征预测的多尺度组织形态学特征的融合与演化|文献速递-医学影像人工智能进展
  • 3.git操作:git init说明
  • macOS 安装 LibreOffice
  • QPS和TPS 的区别是什么?QPS 大了会有什么问题,怎么解决?
  • 数据库设计实验(4)—— 数据更新实验
  • MySQL数据高效同步到Elasticsearch的四大方案
  • 记一次ElasticSearch参数调优
  • c语言笔记 字串串函数---strcat,strncat,strcpy,strncpy
  • 五一假期首日,多地党政主官暗访督查节日安全和值班值守工作
  • 2025财政观察①长三角罚没收入增速放缓,24城仍在上涨
  • 体坛联播|欧冠巴萨3比3战平国米,柯洁未进入国家集训队
  • 强制性国家标准《危险化学品企业安全生产标准化通用规范》发布
  • 神十九乘组安全顺利出舱
  • 吴志朴当选福建德化县人民政府县长