zoukankan      html  css  js  c++  java
  • 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));
    		}
    	}
    
    }
    
    
  • 相关阅读:
    75. Sort Colors
    101. Symmetric Tree
    121. Best Time to Buy and Sell Stock
    136. Single Number
    104. Maximum Depth of Binary Tree
    70. Climbing Stairs
    64. Minimum Path Sum
    62. Unique Paths
    css知识点3
    css知识点2
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075339.html
Copyright © 2011-2022 走看看