Pta題目集 7 36 集合相似度 (25 分)

2021-09-11 05:33:03 字數 821 閱讀 6172

7-36 集合相似度 (25 分)

給定兩個整數集合,它們的相似度定義為:n​c​​/n​t​​×100%。其中n​c​​是兩個集合都有的不相等整數的個數,n​t​​是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。

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

之後一行給出乙個正整數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%

解析:單看題目我們就可以知道此題應該用stl中集合set來做,具體思路比較簡單,不過一定需要注意的是set的訪問方法只能是通過迭代器。如果想當然的利用二重迴圈陣列來訪問,在devc++中編譯不會提示出錯,但是執行之後結果一直是0.所以一定要記住集合的訪問方法只有迭代器法。正確**如下:

#setinclude

using namespace std;

int b[10010];

int main()

}cin>>k;

while(k--)

return 0;

}

7 2 集合相似度

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

L2 005 集合相似度

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

L2 005 集合相似度

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