UVA-墓地雕塑
来源:互联网 发布:武汉壹方凌网络怎么样 编辑:程序博客网 时间:2024/04/27 21:16
题目:在一个周长为10000的圆上等距分布着n个雕塑。现在又有m个新雕塑加入(位置可以随意放),希望所有n+m个雕塑在圆周上均匀分布。这就需要移动其中一些原有的雕塑。要求n个雕塑的移动的总距离尽量小。
题解:
周长为多少先不考虑,先用n+m算,之后再按比例扩大。用n+m算,既新雕塑加入后各个雕塑之间的距离为1,移动后的位置。移动前,选定一个雕塑为原点,那么每个雕塑的坐标就是 i*(n+m)/n 把每个雕塑移动到离它最近的整数坐标的位置,既移动完成后需要有雕塑的位置。
如果没有两个雕塑移动到相同的位置,那么这样的移动是最优的。
那么如何证明,不会存在有两个雕像移动到同一个地方呢。能移动到同一个地方的雕塑坐标距离会小于1,例如1.5与2.4999,它们会移动到2这个位置,但这是不可能的,因为,移动之前位置是等距分配的,而周长(n+m)除以移动之前的个数n,距离是大于1的,所以,不会存在有两个雕像移动到同一个地方。
代码:
#include<cstdio>#include<cmath>int main(){int n,m;while(~scanf("%d%d",&n,&m)){double ans=0.0;int i;for(i=1;i<n;i++){double pos=(double)i/n*(n+m);ans+=fabs(pos-floor(pos+0.5))/(n+m);}printf("%.4lf\n",ans*10000);}return 0;}
0 0
- UVA-墓地雕塑
- UVa 1388Graveyard 墓地雕塑
- UVA-1388 && POJ-3154 墓地雕塑(数学)
- Graveyard(墓地雕塑)
- LA3708 Graveyard 墓地雕塑
- graveyard,neerc(墓地雕塑)
- LA3708墓地雕塑
- LA3708 Graveyard 墓地雕塑
- LA3708 墓地雕塑
- 墓地雕塑(LA 3708)
- uvalive 3708 墓地雕塑
- LA 3708 - Graveyard 墓地雕塑
- 例题1.4 墓地雕塑 UVa1388
- UVaLive 3708 Graveyard 墓地雕塑
- LA3708 Graveyard 墓地雕塑-水题
- (LA 3708)墓地雕塑(Graveyard )
- 算法竞赛入门经典 墓地雕塑
- 墓地雕塑 每日一练(五)
- 电商广告付费资源渠道,目前有哪些广告资源渠道可以利用
- 精益生产篇(1)
- ZOJ 3789 Gears(并查集)
- 创建本地源yum
- 编程之美面试题1
- UVA-墓地雕塑
- 排序算法总结
- MVCC 问答
- 注意stm32定时器的倍频器
- 快速排序简单实现
- python编辑器对比和推荐
- 新一阶段学习困难总结
- Android资源之图像资源(淡入淡出、嵌入)
- chrome背景颜色设置