POJ 1852 Ants(模擬 彈性碰撞)

2021-07-31 06:50:38 字數 470 閱讀 3193

題意:在一根長為l厘公尺的水平木棍上有n只螞蟻,它們以每秒1cm/s的速度走到木棍一端就會掉下去。現在知道它們起始位置(相對於木棍左端點的距離)。但是不知道它們爬行的方向。兩隻螞蟻相遇後,它們會掉頭往反方向走。求所有螞蟻都落下木棍的最短時間和最長時間。

如果採用窮舉搜尋的辦法列舉所有螞蟻的初始朝向,那麼複雜度為o(2^n),當n在百萬數量級時,執行時間無法想象。對演算法優化如下:

#include 

#include

using

namespace

std;

const

int maxn = 1000005;

int pos[maxn];

int main()

return

0;}

演算法複雜度:o(n)

耗時:610ms(估計測試的n較大)

解題報告 POJ1852 Ants

解析 本題需要自己建立模型,思考演算法。本題要求最後乙隻螞蟻掉落的最小時間和最大時間,如果兩隻螞蟻相遇,他們會掉頭,但是我們可以將它們看作沒有相遇。因為a遇到b後掉頭,把a看作b,b看作a,就相當於b繼續走,a也繼續走,只是兩隻螞蟻交換了而已,而我們不區別螞蟻個體。錯誤報告 示例 include i...

POJ1852 Ants 夢開始的地方

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

poj 1852 腦洞大開(Ants)

題意 有乙個一維的數軸,給定其長度len 數軸範圍為 0,len 和上面的螞蟻數n。接下來給出n只螞蟻的座標,都位於整數點之上。螞蟻的移動速度為1,兩隻螞蟻迎面相遇立即朝相反方向運動。假設螞蟻的初始方向未知,問所有螞蟻掉落數軸的最小和最大時間。思路 最小時間比較顯然,就是所有螞蟻不碰撞,即偏左的螞蟻...