我按照之前黑白無常那題的邏輯去模擬但是死在乙個問題上了,就是或集合上,很難受,自己也感覺出來答案錯誤了
**演算法提高 扶老奶奶過街
時間限制: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 我沒有扶老奶奶 已知五個紅領巾中有且只有 個人說的是真話,請...