傳送門 :
給定兩個整數集合,它們的相似度定義為: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
2 1 2
1 3
輸出樣例:
50.00%
33.33%
好簡單一道題 看題意把自己看哭了 其實就是set去重後 交集和並集的商
set 有很多方法
set使用方法:
begin() ,返回set容器的第乙個元素
end() ,返回set容器的最後乙個元素
clear() ,刪除set容器中的所有的元素
empty() ,判斷set容器是否為空
max_size() ,返回set容器可能包含的元素最大個數
size() ,返回當前set容器中的元素個數
rbegin ,返回的值和end()相同
rend() ,返回的值和rbegin()相同
count() 用來查詢set中某個某個鍵值出現的次數。這個函式在set並不是很實用,因為乙個鍵值在set只可能出現0或1次,這樣就變成了判斷某一鍵值是否在set出現過了。
#include
#include
#include
using
namespace
std;
int main()
int k,a,b;
sets;
set::iterator it;
scanf("%d",&k);
for(int i = 1; i <= k; i++)
return
0;}
PAT L2 005 集合相似度
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定兩個整數集合,它們的相似度定義為 nc nt 100 其中nc是兩個集合都有的不相等整數的個數,nt是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。...
PAT L2 005 集合相似度
給定兩個整數集合,它們的相似度定義為 nc nt 100 其中nc是兩個集合都有的不相等整數的個數,nt是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入格式 輸入第一行給出乙個正整數n 50 是集合的個數。隨後n行,每行對應乙個集合。每個集合首先給出乙個正整數m 1...
PATL2 005集合相似度
思路 用set存放資料 定義 sets 51 set i 表示第i個集合的全部元素 判斷a,b集合相似度 判斷a中有sum個元素也在b集合 現 集合相似度就為 sum a.size b.size sum a.size b.size sum 為a,b兩個集合所有不相同元素的個數 例如 集合a有 87 ...