誰是盜竊犯

2021-06-28 13:41:02 字數 701 閱讀 7150

有乙個法院**審理一起盜竊案件,某地的a、b、c三人被押上法庭。負責審理這個案件的法官是這樣想的:願意提供真實情況的不可能是盜竊犯;與此相反,真正的盜竊犯為了掩蓋罪行,是一定會編造口供的。因此,他得出了這樣的結論:說真話的肯定不是盜竊犯,說假話的肯定就是盜竊犯。審批的結果也證明了法官這個想法是正確的。

審問開始了。

法官先問a:「你是怎麼進行盜竊的?從實招來!」

a回答了法官的問題:「嘰裡咕嚕,嘰裡咕嚕.......」a講的是某地方言,法官根本聽不懂他講的是什麼意思。

法官又問b和c:「剛才a是怎樣回答我的提問的?嘰裡咕嚕,嘰裡咕嚕是什麼意思?」

b說:「稟告法官,a的意思是說,他不是盜竊犯。」

c說:「稟告法官,a剛才已經招供了,他承認自己就是盜竊犯。」b和c說的話法官是能聽懂的。聽了b和c的話之後,這位法官馬上斷定:b無罪,c是盜竊犯。

請問:這位聰明的法官為什麼能根據b和c的回答,作出這樣的判斷?a是不是盜竊犯?

解析:不管a是不是盜竊犯,a肯定不會說自己是盜竊犯,他肯定會說自己「不是盜竊犯」。

如果a是盜竊犯,那麼a是說假話,這樣他必然說自己「不是盜竊犯」;

如果a不是盜竊犯,那麼a是說真話,這樣他必然說自己「不是盜竊犯」;

在這種情況下,不管a說的是真話還是假話,b只是轉述了a的話,所以b說的是真話,因此b不是盜竊犯。c有意錯誤轉述a的話,所以c說的是假話,因此c是盜竊犯。但是至於a是不是盜竊犯不能確定。

抓捕盜竊犯

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld q市發生了一起特大盜竊案。這起盜竊案是由多名盜竊犯聯合實施的,你要做的就是盡可能多的抓捕盜竊犯。已知盜竊犯分布於 n nn個地點,以及第 i ii個地點初始有 ai a...

抓捕盜竊犯(並查集)

題意 中文題面 題解 罪犯之間可能會形成乙個聯通塊,只要在每個聯通塊上設乙個關卡就能抓獲聯通塊上所有罪犯。並查集求出所有聯通塊,然後對罪犯個數排個序就行了。includeusing namespace std typedef long long ll const int n 1e5 10 int a...

牛客練習賽41 C 抓捕盜竊犯(並查集)

題解 這個題中逃犯是可以連續移動的,而不是移動到乙個位置後停止,所以用並查集find函式將每個點的最開始的那個點作為父親,然後求屬於此節點的總和,最後排序找出前m大。include include include include using namespace std int n,m,x int p...