• Java实现蓝桥杯墓地雕塑


    墓地雕塑

    问题描述
    在一个周长为10000的圆上等距分布着n个雕塑。现在又有m个新雕塑加入(位置可以随意放),
    希望所有n+m个雕塑在圆周上均匀分布。这就需要移动其中一些原有的雕塑。要求n个雕塑移动的总距离尽量小。

    输入格式
    输入包含若干组数据。每组数据仅一行,包含两个整数n和m(2≤n≤1 000,1≤m ≤1 000),
    即原始的雕塑数量和新加的雕塑数量。输入结束标志为文件结束符(EOF)。

    输出格式
    输出一个正整数,表示每袋核桃的数量。

    样例输入1
    2 1
    2 3
    3 1
    10 10

    样例输出1
    1666.6667
    1000.0
    1666.6667
    0.0

    PS:首先,这个题很恶心人,
    我们假设这个圆环得长度为n+m
    我第i个雕塑 为(n+m)/ni;
    我移动得最小距离就是找到最近得那个新节点,就是最近得整数(我一共有n+m个长度,我新点就是每一个整数点)
    求差就可以了
    最后求和,然后
    10000在除m+n

    package 第七次模拟;
    
    import java.util.Scanner;
    
    public class Demo1雕塑 {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		while(sc.hasNext()){
    			
    		
    		int n = sc.nextInt();
    		int m = sc.nextInt();
    		double ans = 0;
    		for(int i=0;i<n;i++)
    		{
    			double pos=(double)(n+m)/n*i;
    			ans=ans+Math.abs(Math.floor(pos+0.5)-pos);
    		}
    		System.out.printf("%.4f
    ",ans*10000/(double)(n+m));
    		}
    	}
    
    }
    
    
  • 相关阅读:
    安卓原生开发问题.md
    flutter基础学习.md
    [CNBLOG]BLOGS_INFO_CFG
    修改node_modules里的文件
    初步学习Nuxt3
    Leetcode 120 三角形最小路径和
    面试题总纲总结
    python_appnium之安装下载nodejs(5)
    记录JavaScript 用简约的代码实现一些日常功能
    记录Openlayers 高德腾讯、百度、天地图坐标相互转换
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075339.html
Copyright © 2020-2023  润新知