2017.3.4 pat甲级B题Chain the Ropes

    xiaoxiao2021-03-25  108

    2017.3.4 pat甲级B题

    Chain the Ropes (25)

    时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue

    Given some segments of rope, you are supposed to chain them into one rope. Each time you may only fold two segments into loops and chain them into one piece, as shown by the figure. The resulting chain will be treated as another segment of rope and can be folded again. After each chaining, the lengths of the original two segments will be halved.

    Your job is to make the longest possible rope out of N given segments.

    Input Specification:

    Each input file contains one test case. For each case, the first line gives a positive integer N (2 <= N <= 104). Then N positive integer lengths of the segments are given in the next line, separated by spaces. All the integers are no more than 104.

    Output Specification:

    For each case, print in a line the length of the longest possible rope that can be made by the given segments. The result must be rounded to the nearest integer that is no greater than the maximum length.

    Sample Input: 8 10 15 12 3 4 13 1 15 Sample Output: 14 解析:在考场上半天没想出来,最后快结束的时候才发现,越先合并的绳子,之后每合并一次,长度要一直变为二分之一,所以每次合并把最短的两根绳子合并成一根才能得到最大长度。 #include<iostream> #include<algorithm> using namespace std; int main(){ int N; cin >> N; double arr[10000]; for (int i = 0; i < N; i++) { cin >> arr[i]; } for (int j = 0; j < N-1; j++) { sort(arr+j, arr + N-1); double min =(arr[j] + arr[j+1])/2; arr[j+1] = min; } cout << (int)arr[N - 1]; return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-17628.html

    最新回复(0)