給定兩個整數集合,它們的相似度定義為: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集合的一些常用方法: set_union(),set_intersection(),set_difference().並,交,差。在algorithm中。
題目要求是輸出兩集合交集除以並集的結果,應該聯想到數學上學的並交補運算,那麼,就肯定存在與之對應的實現方法。
set_xx(a.begin(),a.end(),b.begin(),b.end(),inserter(ans,ans.begin()) ;
得到交集的大小後,並集的大小也就知道了。
10^9 是比2^31小的乙個數,所以在int行的範圍內。
#include#include#include#include#includeusing namespace std;
const int maxn=55;
int main()
}
cin>>n;
while(n--)
}
L2 005 集合相似度
給定兩個整數集合,它們的相似度定義為 nc nt 100 其中nc是兩個集合都有的不相等整數的個數,nt是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入格式 輸入第一行給出乙個正整數n 50 是集合的個數。隨後n行,每行對應乙個集合。每個集合首先給出乙個正整數m 1...
L2 005 集合相似度
給定兩個整數集合,它們的相似度定義為 nc nt 100 其中nc是兩個集合都有的不相等整數的個數,nt是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入第一行給出乙個正整數n 50 是集合的個數。隨後n行,每行對應乙個集合。每個集合首先給出乙個正整數m 104 是集...
L2 005 集合相似度
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定兩個整數集合,它們的相似度定義為 nc nt 100 其中nc是兩個集合都有的不相等整數的個數,nt是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。...