古人云:秀恩愛,分得快。
網際網路上每天都有大量人發布大量**,我們通過分析這些**,可以分析人與人之間的親密度。如果一張**上出現了 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
正是彼此親密度最高的一對,則只輸出他們的編號,無論是否還有其他人並列。
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
坑點:
可能存在-0,因此必須使用字串讀入
剛開始沒有注意到這個點,於是直接用乙個陣列存大於等於0的男生,乙個陣列存小於0的女生。wa的很徹底。。。15分
思路:使用到的儲存結構:
性別標記陣列
存要查詢的人(設為 x和y)與每乙個異性親密度的陣列(兩個)
存每張**出現的人的陣列
找出有x的**,統計x與異性的親密度即可,y與x的處理過程相同
ac**:
#includeusing namespace std;
int ***[1010];
int fun()
for(int w=f; wp[1010];
int x,y,n,m,i,j,k;
string str;
cin>>n>>m;
vectora(n,0.0);
vectorb(n,0.0);
for(i=1; i<=m; i++)
}x=fun(),y=fun();
for(i=1; i<=m; i++)
else if(findb&&***[y]!=***[p[i][j]])}}
}if(a_max==a[y]&&b_max==b[x])
else
for(int i=0; i}
return 0;
}
秀恩愛分得快 25分
古人云 秀恩愛,分得快。網際網路上每天都有大量人發布大量 我們通過分析這些 可以分析人與人之間的親密度。如果一張 上出現了 k 個人,這些人兩兩間的親密度就被定義為 1 k。任意兩個人如果同時出現在若干張 裡,他們之間的親密度就是所有這些同框 對應的親密度之和。下面給定一批 請你分析一對給定的情侶,...
秀恩愛分得快 25分
古人云 秀恩愛,分得快。網際網路上每天都有大量人發布大量 我們通過分析這些 可以分析人與人之間的親密度。如果一張 上出現了 k 個人,這些人兩兩間的親密度就被定義為 1 k。任意兩個人如果同時出現在若干張 裡,他們之間的親密度就是所有這些同框 對應的親密度之和。下面給定一批 請你分析一對給定的情侶,...
秀恩愛分得快
網際網路上每天都有大量人發布大量 我們通過分析這些 可以分析人與人之間的親密度。如果一張 上出現了 k 個人,這些人兩兩間的親密度就被定義為 1 k。任意兩個人如果同時出現在若干張 裡,他們之間的親密度就是所有這些同框 對應的親密度之和。下面給定一批 請你分析一對給定的情侶,看看他們分別有沒有親密度...