1070 结绳 (25分)

1070 结绳 (25分)



原题链接:传送门

一、题目:

在这里插入图片描述

二、解析:

AC代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.Arrays;

/**
 * 1070 结绳 (25分)
 * 
 * @注意:将最大的绳子放最后面,这样就出现能串成的最大长度
 * @author: ChangSheng 
 * @date:   2020年1月3日 下午6:07:06
 */
public class Main {
	public static void main(String[] args) throws IOException {
		StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		in.nextToken();
		int N = (int) in.nval;
		double[] arr = new double[N];
		for (int i = 0; i < N; i++) {
			in.nextToken();
			arr[i] = in.nval;
		}
		Arrays.sort(arr); // 排序,让最长的绳子在后面
		double sum = 0;
		for (int i = 0; i < N-1; i++) {
			double newRope = (arr[i] + arr[i+1]) / 2.0;
			arr[i+1] = newRope; // 新绳子长度
		}
		System.out.println((int) Math.floor(arr[N-1]));
	}
}
发布了99 篇原创文章 · 获赞 105 · 访问量 9315

猜你喜欢

转载自blog.csdn.net/weixin_44034328/article/details/104080806
今日推荐