補充條件:1.犯人只有在一天結束後才能判斷註:即使唯一的紅帽犯人走了,也要到隔天剩下的白帽才會走。2.犯人在確認自己是紅帽或白帽後會在當天離開假設 4 3的情況:day 1: no one leave ---> 1 red==Falseday 2: no one leave ---> 2 red==Falseday 3: 在任意red的視角中,只能看到2r1w,但2 red==False,所以只能是3r,也就是自己是r --->3 red leaveday 4: everyone leave那問題就來了,day 1時每一個r 不就都知道1r==False了嗎?為什麼需要no one leave才知道 1 red==False?事實上,這時任意r都在假設2r是對還是錯,如果2r==True,day 2 2r就走了,所以重點不再於day 1,而在於r 心中的想法,這也是整個題目的核心,就是一種迭代的想法。while True:try:a,b=map(int,input().split())if a==b:print(b)else:print(b+1)except:break
對於第一個問題,提示底下已經有完整解說
對於第二個問題,題目有說"最少要幾天",所以當然是知道就走阿