墓地 sculpture设置。在周长为1.1.4×1e4的圆周上均匀放置了n座墓地 sculpture。现计划增加m座新的墓地 sculpture以确保最终布局依然均匀。
发布时间
阅读量:
阅读量
墓地雕塑
题目来源 :《算法竞赛入门经典——训练指南》/刘汝佳,陈锋编著
在周长为10000的圆形轨道上,均匀排列着n座雕塑。现计划新增m座雕塑(其摆放位置可自由选择),目标是使所有n+m座雕塑在圆周上实现等距分布。这一过程可能需要对部分原有雕塑进行位置调整。
要求所有被移动的原有雕塑所行进的总路径长度达到最小值。
【输入格式
示例代码展示
//代码来源:《算法竞赛入门经典——训练指南》/刘汝佳,陈锋编著.一北京:清华大学出版社,2012.9
#include<cstdio>
#include<cmath>
using namespace std;
int main(){
int n, m;
while(scanf("%d%d", &n, &m) == 2){
double ans = 0.0;
for(int i = 1; i < n; i++){
double pos = (double)i / n * (n+m); //计算每个需要移动的雕塑的坐标
ans += fabs(pos - floor(pos + 0.5)) / (n+m); //累加移动距离
}
全部评论 (0)
还没有任何评论哟~
