PTA 7 9 集合相似度(STL之set初體驗)

2022-05-26 11:24:10 字數 1238 閱讀 7722

​c

​​/n

​t​​

×100

%。其中n​c

​​是兩個集合都有的不相等整數的個數,n​t

​​是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。

輸入第一行給出乙個正整數n(≤5

0),是集合的個數。隨後n

行,每行對應乙個集合。每個集合首先給出乙個正整數m(≤1

0​4​

​),是集合中元素的個數;然後跟m個[0

,10​

9​​]

區間內的整數。

之後一行給出乙個正整數k(≤2

000),隨後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中不會出現重複樣例,並且可以用logn的find來查詢元素,所以這題用set極好

主要學習**中有關set的部分,尤其是遍歷那裡

#include#include#include#include#include#includetypedef long long ll;

using namespace std;

const int maxn = 10000 + 10;

seta[10000 + 10];

void solve(int x, int y)

int nt = s1 + s2 - nc;

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

}int main()

} scanf("%d", &m);

while(m--)

return 0;

}

另補充一點:

unique可以刪除有序陣列中的重複元素

unique可以刪除有序陣列中的重複元素

unique可以刪除有序陣列中的重複元素

7 9 集合相似度(25 分)

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

pta 集合相似度 stl

5 9 集合相似度 25分 給定兩個整數集合,它們的相似度定義為 n c n t times 100 n c n t 10 0 其中n cn c 是兩個集合都有的不相等整數的個數,n tn t 是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入第一行給出乙個正整數n ...

PAT L2 005 集合相似度(STL)

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