在乙個周長為10000 的圓上等距分布著n 個雕塑。現在又有m 個新雕塑加入(位置可 以隨意放),希望所有n+m 個雕塑在圓周上均勻分布。這就需要移動其中一些原有的雕塑。 要求n 個雕塑移動的總距離盡量小。
【輸入格式】 輸入包含若干組資料。每組資料僅一行,包含兩個整數n 和m(2≤n≤1 000,1≤m ≤ 1 000),即原始的雕塑數量和新加的雕塑數量。輸入結束標誌為檔案結束符(eof)。
【輸出格式】 輸入僅一行,為最小總距離,精確到10-4。
【樣例輸入】
2 1
2 33 1
10 10
【樣例輸出】
1666.6667
1000.0
1666.6667
0.0分析:
在每種情況下,原n個點中總有乙個點不需要移動,把這個點當作原點,按逆時針方向給其它的點標上到原點的距離(按相應比例縮小)。然後求出加入m個點後,n-1個點離它附近最近的點的距離之和。
**如下:
#include #include int main()
printf("%.4lf\n",result * 10000);//等比例擴大結果
} return 0;
}
墓地雕塑 LA 3708
思路 現在我們猜想,如果之前的n個墓碑至少有乙個是不動的,那麼來了m個墓碑之後的所有墓碑的位置都已經固定了,現在就是看要把之前的n個墓碑都放在哪個位置,現在有乙個結論就是說每個墓碑放在離他最近的位置,這樣就ok了,這麼敲有兩個東西要證明 1 為什麼至少有乙個墓碑是沒有移動的 這個我還沒想好,書上說是...
uvalive 3708 墓地雕塑
加入新的雕塑之後,很明顯,坑的位置很固定,假設圈長為一的話每個坑都距離1 n m 所以呢原有的雕塑距離為1 n 這時候只需要保持乙個位置不變,其餘的都就近靠就可以了,這樣一定是距離最近的演算法 include include include include using namespace std i...
LA3708墓地雕塑
題意 有n個墓碑,等距離的分布在乙個圓形墓地的周圍,然後又要新增m個墓碑,最後要求所有的墓碑還是等距離,新增的墓碑可以放在任意位置,問之前的n個墓碑的最少移動距離之和是多少?思路 現在我們猜想,如果之前的n個墓碑至少有乙個是不動的,那麼來了m個墓碑之後的所有墓碑的位置都已經固定了,現在就是看要把之前...