問題描述
新生舞會開始了。n名新生每人有三個屬性:姓名、學號、性別。其中,姓名用長度不超過20的僅由大小寫字母構成的字串表示,學號用長度不超過10的僅由數字構成的字串表示,性別用乙個大寫字元『f』或『m』表示。任意兩人的姓名、學號均互不相同。換言之,每個人可被其姓名或學號唯一確定。給出m對兩人的資訊(姓名或學號),判斷他們是否能共舞。兩人能共舞的充要條件為兩人性別相異。
輸入第一行乙個整數n(2<=n<=1000),表示學生人數。接下來的n行每行依次包含一名新生的姓名、學號、性別,分別用乙個空格隔開。
之後的一行是乙個整數m(1<=m<=1000),表示詢問的數目。接著的m行每行包含兩個資訊(姓名或學號),保證兩個資訊不屬於同一人,中間用乙個空格隔開。
輸出對於每個詢問輸出一行,如果兩人可以共舞,輸出乙個大寫字母『y』,否則輸出乙個大寫字母『n』。
樣例輸入
4john 10 m
jack 11 m
kate 20 f
jim 21 m
3john 11
20 jack
jim jack
樣例輸出ny
n1.因為每個人的名字和學號都是唯一的,所以我們可以把他們看成索引,用map實現,用學號和名字作為索引,性別作為第二個值。
2.在判斷的時候,會出現名字和學號的對比的情況,為了減少判斷,我們可以把學號和名字都作為性別的索引。同時,這一題已經保證「保證兩個資訊不屬於同一人」,所以我們可以不用記錄名字和學號的對應關係。
ps:如果題目沒***「兩個資訊不屬於同一人」(pat經常做這種事)的話,我們就需要再定義乙個map,實現名字和學號的對應關係,方便後續判斷。
#include#includeusing namespace std;
int main()
cin >> m;
string s1, s2;
for (int i = 1; i <= m; i++) else
}return 0;
}
演算法訓練 新生舞會
問題描述 新生舞會開始了。n名新生每人有三個屬性 姓名 學號 性別。其中,姓名用長度不超過20的僅由大小寫字母構成的字串表示,學號用長度不超過10的僅由數字構成的字串表示,性別用乙個大寫字元 f 或 m 表示。任意兩人的姓名 學號均互不相同。換言之,每個人可被其姓名或學號唯一確定。給出m對兩人的資訊...
演算法訓練 新生舞會
演算法訓練 新生舞會 時間限制 1.0s 記憶體限制 512.0mb 問題描述 新生舞會開始了。n名新生每人有三個屬性 姓名 學號 性別。其中,姓名用長度不超過20的僅由大小寫字母構成的字串表示,學號用長度不超過10的僅由數字構成的字串表示,性別用乙個大寫字元 f 或 m 表示。任意兩人的姓名 學號...
藍橋杯 演算法訓練VIP 新生舞會(C語言實現)
題目描述 新生舞會開始了。n名新生每人有三個屬性 姓名 學號 性別。其中,姓名用長度不超過20的僅由大小寫字母構成的字串表示,學號用長度不超過10的 僅由數字構成的字串表示,性別用乙個大寫字元 f 或 m 表示。任意兩人的姓名 學號均互不相同。換言之,每個人可被其姓名或學號唯一確定。給出m對 兩人的...