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));
    		}
    	}
    
    }
    
    
  • 相关阅读:
    单例模式(Singleton)
    建造者模式(Builder和Director)
    原型模式(Prototype)
    备忘录模式(Memento)
    观察者模式(Observer)
    工厂模式(Factory)
    状态模式(State)
    模板方法模式(Template Method)
    策略模式(Strategy)
    微信小程序------小程序初步学习
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075339.html
Copyright © 2011-2022 走看看