藍橋杯 演算法提高 扶老奶奶過街

2021-08-13 22:28:44 字數 1003 閱讀 7590

我按照之前黑白無常那題的邏輯去模擬但是死在乙個問題上了,就是或集合上,很難受,自己也感覺出來答案錯誤了

**演算法提高 扶老奶奶過街  

時間限制:1.0s   記憶體限制:256.0mb

一共有5個紅領巾,編號分別為a、b、c、d、e,老奶奶被他們其中乙個扶過了馬路。

五個紅領巾各自說話:

a :我和e都沒有扶老奶奶

b :老奶奶是被c和e其中乙個扶過大街的

c :老奶奶是被我和d其中乙個扶過大街的

d :b和c都沒有扶老奶奶過街

e :我沒有扶老奶奶

已知五個紅領巾中有且只有2個人說的是真話,請問是誰扶這老奶奶過了街?

若有多個答案,在一行中輸出,編號之間用空格隔開。

例如a b c d e(這顯然不是正確答案)

這道題可以直接邏輯推理來做,因為只有abcde五個人,兩個人說了真話,就只有c[5,2]=10種情況,說真話的分別為ab,ac,ad,ae,bc,bd,be,cd,ce,de。通過簡單推理得當ae說真話時,b扶了老奶奶;bd時,是e;de時,是a。因此,**直接輸出abe。

[cpp]

view plain

copy

#include

using

namespace

std;  

intmain()    

當然,為了保險,程式設計得出準確答案。我們將之間的邏輯關係設為程式語句,將abcde視為乙個陣列a[5],1表示扶了老奶奶,0表示沒扶。先假設他們都沒有扶老奶奶,將a賦為0,然後依次假設其中一位扶了老奶奶,賦為1.具體見**

[cpp]

view plain

copy

#include

#include

using

namespace

std;  

intmain()  

printf("\n"

);  

return

0;  

}  

藍橋杯 演算法提高 扶老奶奶過街

演算法提高 扶老奶奶過街 時間限制 1.0s 記憶體限制 256.0mb 一共有5個紅領巾,編號分別為a b c d e,老奶奶被他們其中乙個扶過了馬路。五個紅領巾各自說話 a 我和e都沒有扶老奶奶 b 老奶奶是被c和e其中乙個扶過大街的 c 老奶奶是被我和d其中乙個扶過大街的 d b和c都沒有扶老...

藍橋杯 演算法提高 扶老奶奶過街

一共有5個紅領巾,編號分別為a b c d e,老奶奶被他們其中乙個扶過了馬路。五個紅領巾各自說話 a 我和e都沒有扶老奶奶 b 老奶奶是被c和e其中乙個扶過大街的 c 老奶奶是被我和d其中乙個扶過大街的 d b和c都沒有扶老奶奶過街 e 我沒有扶老奶奶 已知五個紅領巾中有且只有 個人說的是真話,請...

藍橋杯 扶老奶奶過街

一共有5個紅領巾,編號分別為a b c d e,老奶奶被他們其中乙個扶過了馬路。五個紅領巾各自說話 a 我和e都沒有扶老奶奶 b 老奶奶是被c和e其中乙個扶過大街的 c 老奶奶是被我和d其中乙個扶過大街的 d b和c都沒有扶老奶奶過街 e 我沒有扶老奶奶 已知五個紅領巾中有且只有 個人說的是真話,請...