藍橋杯 演算法訓練VIP 新生舞會(C語言實現)

2021-10-02 18:20:33 字數 1369 閱讀 9366

題目描述

新生舞會開始了。n名新生每人有三個屬性:姓名、學號、性別。其中,姓名用長度不超過20的僅由大小寫字母構成的字串表示,學號用長度不超過10的 僅由數字構成的字串表示,性別用乙個大寫字元『f』或『m』表示。任意兩人的姓名、學號均互不相同。換言之,每個人可被其姓名或學號唯一確定。給出m對 兩人的資訊(姓名或學號),判斷他們是否能共舞。兩人能共舞的充要條件為兩人性別相異。

輸入

第一行乙個整數n(2< =n< =1000),表示學生人數。接下來的n行每行依次包含一名新生的姓名、學號、性別,分別用乙個空格隔開。

之後的一行是乙個整數m(1< =m< =1000),表示詢問的數目。接著的m行每行包含兩個資訊(姓名或學號),保證兩個資訊不屬於同一人,中間用乙個空格隔開

輸出

對於每個詢問輸出一行,如果兩人可以共舞,輸出乙個大寫字母『y』,否則輸出乙個大寫字母『n』

樣例輸入4

john 10 m

jack 11 m

kate 20 f

jim 21 m

3john 11

20 jack

jim jack

樣例輸出n

yn題目鏈結

分析

這道題用鍊錶就可以輕鬆的解決,將輸入的學生資訊存入鍊錶中,然後遍歷整個鍊錶,根據新生的姓名或者學號找到其相對應的性別,最後判斷兩人性別是否相同。

參考**

#include

#include

#include

typedef

struct node node;

//將結構體struct node定義成node

struct node

;int main (

void

)else

tail=p;

}char ch1[21]

,ch2[21]

,op1,op2;

//ch1,ch2為輸入的學號或姓名;

scanf

("%d"

,&m)

;//op1,op2為代表性別

while

(m--

)elseif(

strcmp

(ch2,p->name)==0

||strcmp

(ch2,p->num)==0

)}if(op1!=op2)

else

}return0;

}

如有錯誤之處,敬請指正!!!

藍橋杯 演算法訓練 map 新生舞會

問題描述 新生舞會開始了。n名新生每人有三個屬性 姓名 學號 性別。其中,姓名用長度不超過20的僅由大小寫字母構成的字串表示,學號用長度不超過10的僅由數字構成的字串表示,性別用乙個大寫字元 f 或 m 表示。任意兩人的姓名 學號均互不相同。換言之,每個人可被其姓名或學號唯一確定。給出m對兩人的資訊...

演算法訓練 新生舞會

問題描述 新生舞會開始了。n名新生每人有三個屬性 姓名 學號 性別。其中,姓名用長度不超過20的僅由大小寫字母構成的字串表示,學號用長度不超過10的僅由數字構成的字串表示,性別用乙個大寫字元 f 或 m 表示。任意兩人的姓名 學號均互不相同。換言之,每個人可被其姓名或學號唯一確定。給出m對兩人的資訊...

演算法訓練 新生舞會

演算法訓練 新生舞會 時間限制 1.0s 記憶體限制 512.0mb 問題描述 新生舞會開始了。n名新生每人有三個屬性 姓名 學號 性別。其中,姓名用長度不超過20的僅由大小寫字母構成的字串表示,學號用長度不超過10的僅由數字構成的字串表示,性別用乙個大寫字元 f 或 m 表示。任意兩人的姓名 學號...