L2 005 集合相似度

2021-07-28 12:43:50 字數 1242 閱讀 9163

給定兩個整數集合,它們的相似度定義為:nc/nt*100

%。其中nc是兩個集合都有的不相等整數的個數,nt是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。

輸入第一行給出乙個正整數n(<=50),是集合的個數。隨後n行,每行對應乙個集合。每個集合首先給出乙個正整數m(<=104),是集合中元素的個數;然後跟m個[0, 109]區間內的整數。

之後一行給出乙個正整數k(<=2000),隨後k行,每行對應一對需要計算相似度的集合的編號(集合從1到n編號)。數字間以空格分隔。

對每一對需要計算的集合,在一行中輸出它們的相似度,為保留小數點後2位的百分比數字。
3

3 99 87 101

4 87 101 5 87

7 99 101 18 5 135 18 99

21 2

1 3

50.00

%33.33

%

直接使用set容器即可。
#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define max 2113

setlist[51];

int main()

}int n2;

cin >> n2;

int mi, ma;

for (int i = 0; i < n2; i++)

int nc = 0;

int size = list[mi].size();

int size2 = list[ma].size();

set::iterator it;

for (it = list[mi].begin(); it != list[mi].end(); it++)

}int nt = size + size2 - nc;

printf("%.2lf%%\n", (double)((double)((double)nc/nt)*100.0));

}return

0;}

L2 005 集合相似度

給定兩個整數集合,它們的相似度定義為 nc nt 100 其中nc是兩個集合都有的不相等整數的個數,nt是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入格式 輸入第一行給出乙個正整數n 50 是集合的個數。隨後n行,每行對應乙個集合。每個集合首先給出乙個正整數m 1...

L2 005 集合相似度

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定兩個整數集合,它們的相似度定義為 nc nt 100 其中nc是兩個集合都有的不相等整數的個數,nt是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。...

L2 005 集合相似度

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定兩個整數集合,它們的相似度定義為 nc nt 100 其中nc是兩個集合都有的不相等整數的個數,nt是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。...