題意: 一維線段n個可以運動的點,位置為p, 速度為v。 求在運動的過程中有多少點可以領跑(在最前面)。
分析: 可以將速度v也變成乙個維度, 乙個點要超過另乙個點的前提條件是速度更大, 其中可以根據求凸包的思想, 如果這個點到另乙個點的相對距離與相對速度做除法運算, 即求得斜率。 斜率大的可以更先跑到前面並且不會被他超過, 在這裡要對位置和速度排序, 然後按照求凸包的思想直接求解。 關於乙個點可以在超過最前面的點超過另乙個點解釋見下圖。綠色和藍色分別代表斜率。
hdu2297Run(凸包的巧妙應用)
鏈結 很巧妙的一道題,參考 把距離和速度分別作為x和y座標,以斜率代表追趕速率,簡直炫酷 具體看上面的部落格,畫的很清楚,就不再抄寫一遍了。1 include 2 include3 include4 include5 include6 include7 include8 include9 inclu...
hdu 1616 計算幾何 凸包
題意是乙個世界有許多個國家,每個國家有n個建築,包括乙個發電站和n 1個用電建築,所有建築圍成的凸包就是這個國家的面積。一枚飛彈如果在乙個國家之內 則可以使這個國家停電。step 1 求出每個國家的凸包 我用水平排序就是各種坑,改叉乘排序才過,主要是後面求面積的時候需要這個叉乘排序的資訊 step ...
hdu 6325 計算幾何 凸包
原題 題意 二維平面上給出許多點,起點 0,0 終點 m,0 選一些點,相鄰兩個點i,j之間產生乙個權值,xi yj xj yi 其實就是叉積。要求權值和最小,起點和終點必須選。點可以重合,如果有多個答案要求輸出字典序最小的。這個叉積就可以轉換成乙個圖形的面積,它又要求這個值最小,其實就是要求面積最...