Ants 巧妙的思路

2021-10-19 10:56:28 字數 611 閱讀 3839

最關鍵的是每只螞蟻的朝向未知,顯然,不可能用暴搜,指數級的複雜度;

所以這道題目一定要想出某個把問題簡化的方法,而不是乙個個去嘗試答案;

最短時間很好想,讓每只螞蟻都朝著更近的端點走就好了,不會發生相遇折返的情況;

最長時間呢?一開始沒有想出來,因為陷在了複雜的相遇、調頭,再相遇……的過程中;但是回過頭來想,整個過程顯然不能直接模擬!!!

比如先考慮兩隻螞蟻,位於x1,x2;1往右,2往左;先相遇,再調頭,掉下去;螞蟻1的總路程為x1+2*(x2-x1)/2=x2;螞蟻2的總路程為l-x2+2*(x2-x1)/2=l-x1;其實這兩個路程就是他們各自沿著初始方向走到端點所需要的路程(只不過看似換成了另乙個螞蟻完成);但是我們只需要得到最長的時間就可以了,和哪乙隻螞蟻走出來的沒有關係!

所以其實,螞蟻之間並沒有區別!!!

相遇之後看似兩隻螞蟻調了頭,其實完全可以看成是螞蟻沿著原路在走。

void

solve()

Codeforces 662A 思路巧妙的異或

題意 給你 n 堆石子玩尼姆博弈,每堆石子可以是 a i 也可以是 b i 選擇概率相等且每堆選擇相互獨立,求先手必勝 異或不為0 的概率 首先需要找出一種優雅的策略表示方法 利用異或的思想 我們需要處理的是 c i a i xor b i 的線性基,然後用 s 代表 a i 的整體異或,那麼 s ...

REDIS設計過程的巧妙思路彙總

記憶體分配。redis記憶體分配底層呼叫的還是malloc函式,但是不同的地方在於malloc在分配的記憶體前面會寫入分配的記憶體大小,如下 void zmalloc size t size 這樣做的好處時可以統計出系統記憶體的情況,根據系統使用記憶體的情況執行淘汰等操作。但是redis仍然沒有解決...

POJ1852 Ants 夢開始的地方

挑戰程式設計競賽 的第一道oj題目,記錄一下 題目大致描述是 有一群螞蟻在一根水平木棒上,給出初始時每只螞蟻在木棒上距離木棒左端的位置,螞蟻可向左向右移動,當螞蟻走到木棒的一端時會掉下木棒,求所有螞蟻全部掉下木棒的最短時間和最長時間。考慮最短時間,所有螞蟻朝著距離自己較近的一端走,求出用時最多的螞蟻...