PATL2 005集合相似度

2021-09-10 14:08:11 字數 769 閱讀 2641

思路:用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 99 101  a.size()=3

集合b有5 87 87 101 由於set集合不存放重複資料 所以 b:5 87 101

通過遍歷發現a中有87,101兩個元素在b**現   所以sum=2

a,b中所有不同元素個數就為3+3-2 = 4 個 分別為5 87 99 101

集合相似度就為2/4=50%

**如下:

#include

#include

#include

#include

#include

using namespace std;

int n,m,k;

sets[51];

double f(int a,int b)

double gl = sum*1.0/(s[a].size()+s[b].size()-sum) * 100;

printf("%.2lf%%\n",gl);    

}int main()

}int a,b;    

cin>>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...

PAT L2 005 集合相似度(STL)

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