天梯賽 L2 028 秀恩愛分得快 25分

2021-10-03 20:43:46 字數 2049 閱讀 4672

古人云:秀恩愛,分得快。

網際網路上每天都有大量人發布大量**,我們通過分析這些**,可以分析人與人之間的親密度。如果一張**上出現了 k 個人,這些人兩兩間的親密度就被定義為 1/k。任意兩個人如果同時出現在若干張**裡,他們之間的親密度就是所有這些同框**對應的親密度之和。下面給定一批**,請你分析一對給定的情侶,看看他們分別有沒有親密度更高的異性朋友?

輸入在第一行給出 2 個正整數:n(不超過1000,為總人數——簡單起見,我們把所有人從 0 到 n-1 編號。為了區分性別,我們用編號前的負號表示女性)和 m(不超過1000,為**總數)。隨後 m 行,每行給出一張**的資訊,格式如下:

k

p[1] ... p

[k]

其中 k(≤\le

≤ 500)是該****現的人數,p[1] ~ p[k] 就是這些人的編號。最後一行給出一對異性情侶的編號 a 和 b。同行數字以空格分隔。題目保證每個人只有乙個性別,並且不會在同一張**裡出現多次。

首先輸出a pa,其中pa是與a最親密的異性。如果pa不唯一,則按他們編號的絕對值遞增輸出;然後類似地輸出b pb。但如果ab正是彼此親密度最高的一對,則只輸出他們的編號,無論是否還有其他人並列。

10 4

4 -1 2 -3 4

4 2 -3 -5 -6

3 2 4 -5

3 -6 0 2

-3 2

-3 2

2 -5

2 -6

4 4

4 -1 2 -3 0

2 0 -3

2 2 -3

2 -1 2

-3 2

-3 2
#include

#include

#include

#include

#include

#include

#include

using

namespace std;

int n,m;

struct t

;auto cmp=

(t &e1,t &e2)

;int

main()

} string a,b;

cin>>a>>b;

//需要查詢的資料

string fin[2]

; fin[0]

=a; fin[1]

=b; vector>p;

//存放與查詢資料異性且同框的人 存放編號 親密度

p.resize(2

);for(

int x=

0;x<

2;x++)}

}if(adu.

size()

!=0))

;}} adu.

clear()

;}vector>yy(

2);for

(int i=

0;i<

2;i++)}

}}int flag=0;

//a 和 b 正是彼此親密度最高的一對 if(

count

(yy[1]

.begin()

,yy[1]

.end()

,fin[0]

)!=0&&

count

(yy[0]

.begin()

,yy[0]

.end()

,fin[1]

)!=0)

if(!flag)

for(

int i=

0;i<

2;i++)if

(i+1!=2

) cout<}else

return0;

}

L2 028 秀恩愛分得快

l2 028 秀恩愛分得快 古人云 秀恩愛,分得快。網際網路上每天都有大量人發布大量 我們通過分析這些 可以分析人與人之間的親密度。如果一張 上出現了 k 個人,這些人兩兩間的親密度就被定義為 1 k。任意兩個人如果同時出現在若干張 裡,他們之間的親密度就是所有這些同框 對應的親密度之和。下面給定一...

L2 028 秀恩愛分得快(25 分)

l2 028 秀恩愛分得快 25 分 古人云 秀恩愛,分得快。網際網路上每天都有大量人發布大量 我們通過分析這些 可以分析人與人之間的親密度。如果一張 上出現了 k 個人,這些人兩兩間的親密度就被定義為 1 k。任意兩個人如果同時出現在若干張 裡,他們之間的親密度就是所有這些同框 對應的親密度之和。...

L2 028 秀恩愛分得快 (25 分

l2 028 秀恩愛分得快 25 分 思路 1 遍歷每個 裡的人需要約1000 500 500 2.5 10 8的複雜度,肯定就爆掉了,所以可以只遍歷題目中的 a與b所在的 複雜度約為1000 500 5 10 5,而且用性別篩選後複雜度又可以下降很多。2 a與b是最親密的,a與b是最親密的,a與b...