LA 3708 墓地雕塑

题目链接:https://vjudge.net/contest/132704#problem/D

题意:一个长度为10000的园上,均匀分布n个雕塑,现在要加入m个雕塑,这样原先的就可能会移动,求移动总和最小。

分析:

不防,以一个点为定点,总长度为(n+m),这里的距离是等比例缩小了的,原先的位置就是 i/n*(n+m);那么他要到的位置自然是最近的位置,floor(pos+0.5),(四舍五入)。

 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int n,m;
 8     while(~scanf("%d%d",&n,&m)) {
 9         double ans = 0;
10 
11         for(int i=1;i<n;i++) {
12             double pos = (double)i/n*(n+m); //原来的位置
13             ans +=fabs(pos-floor(pos+0.5))/(n+m);
14         }
15 
16         printf("%.4f
",ans*10000);
17 
18     }
19 
20     return 0;
21 }
原文地址:https://www.cnblogs.com/TreeDream/p/6349214.html