問題描述:現有乙個社交**,其好友推薦策略為:使用者a
和使用者b
不是好友,當二人的共同好友數量超過好友推薦閾值
m時,就向a和
b分別推薦為彼此好友。
本題任務為:
對設定的
m值,給定一組使用者及各自好友列表,對這一組使用者,反覆自動應用上述好友推薦策略後(假設每次推薦都被採納),求指定使用者的最終好友列表。
注:好友關係是雙向的,即:如果使用者
a是使用者
b的好友,那麼使用者
b一定也是使用者
a的好友。
寫乙個程式,在社交網路中實現: 1
)初始化社交網路 2
)建立使用者 3
)增加指定兩個使用者之間的好友關係 4
)反覆自動應用好友推薦策略後,獲取某個使用者的好友數量 5
)反覆自動應用好友推薦策略後,判斷某兩個使用者間是否存在好友關係
說明:
1、乙個使用者有且只有乙個名字,且不存在重名 2
、自己和自己不存在好友關係 3
、使用者名字大小寫敏感 4
、使用者名字字串長度範圍為
[1..20]
5、使用者總數小於100個
輸入:
五個整數,好友推薦閾值p
,建立使用者數量m,
增加指定兩個使用者之間的好友關係數量m,查詢
某個使用者的好友數量n,查詢指定兩個使用者是否是好友n
字串,每個資料一行,按到上面的順序依次輸入資料,共m+m+n+n行字串
字串,每個一行,共m+m+n+n行字串
輸出:輸出使用者的好友數量,共n個,每個一行;如果使用者不存在,輸出-1,否則輸出好友數量。樣例中的使用者jack、peter、tom的好友數量都是2個。
輸出指定兩個使用者是否是好友,共n個,每個一行,如果是輸出0,否則輸出-1。樣例中的使用者jack與peter、peter與tom、jack與tom都是好友關係,所有輸出0。
樣例:2 3 3 3 3 //好友推薦閾值2,使用者數量為3,增加知道兩個使用者之間的好友關係數量m,
//查詢某個使用者的好友數量3,查詢指定兩個使用者是否是好友n字串
jack樣例輸出:peter
tom //輸入了三個使用者
jack peter
peter tom
jack tom //增加了三個好友關係
jack
peter
tom //查詢了這三個使用者的好友數量
jack peter
peter tom
jack tom //查詢了這三個好友關係是否存在
2 //jack幾個好友,這裡就用到了閾值2 //peter幾個好友2 0 //jack peter是否好友0 //peter tom是否好友0 //jack tom看了別人的**,主要想法是雜湊表的使用以及好友矩陣表。將名字字串轉化到int空間,然後使用好友矩陣表進行分析。特別注意:當有新的好友對產生時要繼續進行迴圈
#include#include#includeusing namespace std;
const int maxn =1010;
bool mp[maxn][maxn]; //mp[i][j]表示第i個人和第j個人是不是朋友
int num[maxn]; //num[i]表示第i個人有多少個好友
int main()
for(i = 0;i>str1>>str2;
mp[id[str1]][id[str2]]=mp[id[str2]][id[str1]]=1;
}//標記好友矩陣
bool flag = 1; //標記是否會有新的好友對產生
int count; //共同好友的個數
while(flag)
//有新的好友對產生,需要再次處理
}} //統計每個人的好友數
for(i = 0;i>str1;
cout<>str1>>str2;
if(mp[id[str1]][id[str2]])
cout<
else
cout<
} }system("pause");
return 0;
}
華為機試整理
include stdafx.h includeusing namespace std int main int argc,tchar argv cout 2.大數相加 用stl的string比較方便,如下,自己測了幾組資料沒有什麼問題。include stdafx.h include includ...
華為機試 2013
1.字串轉換 問題描述 將輸入的字串 字串僅包含小寫字母 a 到 z 按照如下規則,迴圈轉換後輸出 a b,b c,y z,z a 若輸入的字串連續出現兩個字母相同時,後乙個字母需要連續轉換2次。例如 aa 轉換為 bc,zz 轉換為 ab 當連續相同字母超過兩個時,第三個出現的字母按第一次出現算。...
華為機試3
明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 1000 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 去重 與 排序...