PTA秀恩愛分得快 25分

2021-10-02 14:44:18 字數 2888 閱讀 3578

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

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

輸入格式:

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

k p[1] … p[k]

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

輸出格式:

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

輸入樣例 1:

10 4

4 -1 2 -3 4

4 2 -3 -5 -6

3 2 4 -5

3 -6 0 2

-3 2

輸出樣例 1:

-3 2

2 -5

2 -6

輸入樣例 2:

4 44 -1 2 -3 0

2 0 -3

2 2 -3

2 -1 2

-3 2

輸出樣例 2:

-3 2

這道題真得把我做吐了,一開始完全沒考慮那麼多,可以說所有的坑都被我踩到了。

錯誤**:

#include

#include

#include

using

namespace std;

struct node

;node ans[

1005][

1005];

bool

cmp(node a,node b)

intmain

(void)}

for(

int i=

0;i)for

(int j=

0;j}for

(int i=

0;i)int a,b;

cin>>a>>b;

int x=

abs(a)

,y=abs

(b);

double max=-1

; vector<

int> va;

vector<

int> vb;

for(

int i=

0;i)else

if(a>

0&&ans[x]

[i].v<

0&&ans[x]

[i].q>=max)

} max=-1

;for

(int i=

0;i)else

if(b<

0&&ans[y]

[i].v>

0&&ans[y]

[i].q>=max)}if

(find

(va.

begin()

,va.

end(

),b)

!=va.

end()&&

find

(vb.

begin()

,vb.

end(

),a)

!=vb.

end())

else

for(

int i=

0;isize()

;i++)}

return0;

}

正確思路不應該使用int來輸入編號,應該以字串,並且開乙個存性別的陣列。使用vectorv先來儲存關係。

ac**:

#include

#include

#include

#include

#include

using

namespace std;

int gender[

1008];

vector

int>

> v;

intread

(string s)

gender[num]

=flag;

return num;

}int

main

(void)}

string a,b;

cin>>a>>b;

int a1=

read

(a),b1=

read

(b);

double mxa=

0,mxb=0;

for(

int i=

0;iif(fb)}}

}}if(pa[b1]

==mxa&&pb[a1]

==mxb)

else

}for

(int i=

0;i}return0;

}

參考部落格:

秀恩愛分得快 25分

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

秀恩愛分得快 25分

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

7 12 秀恩愛分得快 25 分

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