USACO演算法系列 討論篇

2021-05-25 05:40:11 字數 674 閱讀 3162

這道題目來自於我同學的口述,大意是這樣,有n個房間,編號為1,2,3……n,裡面有1個寵物,然後你每次只能開啟乙個房間,如果沒有找到,寵物必須隨機向左向右移動一次,問你如何以最快的開門方式找到寵物。

eg,有3個房間,那麼你只要至多開啟中間的房間兩次就可以找到寵物了。

分析:用n個位來表示n個房間,0:代表有寵物,1:代表沒有寵物。則當n=3時,寵物的初始狀態可能為

1)100

2)010

3)001

你開啟第二個房間一次,如果沒有找到寵物,剩下兩種狀態,100,001,寵物移動,只剩下狀態010,因此只需要再次開啟房間2就可以找到寵物了。

當n=4時,初始狀態為1000 0100 0010 0001。開啟房間2,可以刪除第二種可能性,剩下1000 0010 0001三種狀態,寵物移動得到新的狀態為0100 0010 0001。此時如果開啟房間2,剩下0010 0001兩種狀態,寵物移動以後,仍然有0100 0010 0001三種狀態。進入死迴圈狀態,所以應該開啟房間三,此時寵物移動以後狀態為1000 0010,然後接著開啟房間3,狀態僅剩下0100,寵物一定在第二個房間。共需4次。

當n=5時,使用同樣方法,依次開啟2,3,4,4,3,2房間就可以找到寵物了。共需六次。

因此,至多只需要2*(n-2)次就可以找到寵物了,方式為依次開啟2,3,4……n-1,n-1,n-2,……3,2房間。

USACO演算法系列十四 fence

題目 http www.nocow.cn index.php translate usaco fence 看完這道題目的第一想法就是,遍歷所有的邊,而且每一條邊的經過次數只能一次。是離散數學裡面的圖論的尤拉通路問題,在這裡充分體現了數學的重要性。定理 無向圖g有尤拉通路的充分必要條件是g為連通圖,並...

USACO演算法系列十六 續

題目 http www.nocow.cn index.php translate usaco camelot 昨天晚上寫了乙個晚上的這道題,各種邊界條件和意外情況。看著自己寫的600多行 和一連串的test ok.心裡特別有成就感,但是看了別人寫的 80幾行,就發現了實力的差距。先說說自己的想法吧,...

USACO演算法系列七 stamps

題目 郵票數可以顯示最大連線自然數的問題,看到這道題目第乙個想到的是整數劃分問題。但是又很不一樣。第一它不用考慮這個整數的所有劃分情況,而是只要考慮整數是否可以被 k個郵票表示。最簡單的想法,用stamp n 陣列表示郵票,然後遞增考慮1到k stamp n 範圍的自然數的劃分,直到不能劃分為止。為...