7-9 集合相似度

本文介绍了一个使用C++实现的集合相似度计算程序。该程序通过计算两个集合中元素的交集来评估它们之间的相似度,并将结果以百分比形式输出。适用于需要比较集合间相似性的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/
7-9 集合相似度
/

#include <bits/stdc++.h>

using namespace std;

set<int>ss[100];
int aa, bb, n, m, t;


void solve(int a, int b){
  int same = 0;
  set<int>::iterator it;
  for(it = ss[a].begin(); it != ss[a].end(); it++){
    if(ss[b].find(*it) != ss[b].end())same++;
  }
  int sum = ss[a].size() + ss[b].size();
  int cnt = sum - same;
  printf("%.2lf\%\n",same*1.0/cnt*100);

}


int main(){
  // ios::sync_with_stdio(false);
  cin >> n;
  for(int i = 0 ; i < n ;i++)
  {
    cin >> t;
    for(int j = 0 ; j < t ; j++){
      scanf("%d",&aa);
      ss[i].insert(aa);
    }
  }

  cin >> m;

    for(int i = 0 ; i < m ; i++){
      scanf("%d%d",&aa,&bb);
      aa--;
      bb--;
      solve(aa,bb);
    }

  return 0;
}

转载于:https://www.cnblogs.com/pprp/p/8619890.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值