G FZU2022 犯罪嫌疑人

2021-07-05 20:09:15 字數 1076 閱讀 3641

這道題題意很清楚,是推理題,主要靠思維,**部分比較簡單。
以下是解題思路(按照**順序編寫,可以對照著看):
a[i]表示第i個人被指控的次數,a[i]表示地i個人被澄清的次數,suspect[i]表示第i個人是否為嫌疑人,tmp記錄那個人的口供。
現在假設第i個人是罪犯,則xx = a[i] + σb - b[i]為所真話的人數。(此處為關鍵,想到這兒,問題就迎刃而解)
對所有的人 if (xx == m)(m為實際說真話的人數),則第i個人就是嫌疑人,suspect[i]置為1 ,num記錄嫌疑人人數。
顯然當num == 1時,唯一的嫌疑人就是罪犯,那麼誰誰說的是否是真話就顯而易見了。
當num != 1時,再看第i個人的供詞,如果他指控某個人而這個人是嫌疑人,則他說的話無法判定,反之則說的是假話;如果他為某人澄清,而此人是嫌疑人則他說的話無法判斷,反之他說的是真話。
#define _crt_secure_no_deprecate

#include#include#include#include#include#includeusing namespace std;

int a[100005], b[100005], tmp[100005], suspect[100005];

int main()

} int num = 0;

for (int i = 1; i <= n; i++)

} if (num == 1)

for (int i = 1; i <= n; i++)

else

}else

else

}} }

return 0;

}

FZU2202 犯罪嫌疑人

problem 2202 犯罪嫌疑人 福爾摩斯是個大偵探,他總是在解決疑難案件。這一次的案件也不例外,案件是這樣的 有編號為1到n的n位嫌疑犯,他們其中有乙個犯了罪,然後每個嫌疑犯都被詢問,哪乙個人犯了罪?犯罪嫌疑人的答案只能 編號ai的嫌疑犯犯了罪 或者 編號ai的嫌疑犯沒有犯罪 當然嫌疑犯也可以...

fzu2202犯罪嫌疑人 邏輯判斷

假設i是犯人,則說真話的人數 說i是犯人的人數 說某人不是犯人的人數 說i不是犯人的人數 若i說x是犯人,x可能是犯人時,i說的可能是真話也可能是假話 x不可能是犯人時,i說的必為假話 若i說x不是犯人,x可能是犯人時,i說的可能是真話也可能是假話 x不可能是犯人時,i說的必為真話 include ...

山東煙台嚴打電信詐騙 抓獲犯罪嫌疑人689人

煙台1月30日電 王永文 記者30日從煙台市公安局獲悉,去年煙台嚴打各類電信網路詐騙犯罪,共抓獲犯罪嫌疑人689人,同比上公升66.5 自偵本地案件699起,同比上公升19.3 發案數 被騙金額同比去年分別下降10.2 和40.9 據悉,移動 聯通 電信三大網路運營商和銀監分局 銀行專人專線實體進駐...