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\n",ans*10000);
17 
18     }
19 
20     return 0;
21 }

 

转载于:https://www.cnblogs.com/TreeDream/p/6349214.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值