当前位置: 代码迷 >> 综合 >> 个人练习-PAT甲级-1125 Chain the Ropes
  详细解决方案

个人练习-PAT甲级-1125 Chain the Ropes

热度:74   发布时间:2023-12-21 11:06:13.0

题目链接https://pintia.cn/problem-sets/994805342720868352/problems/994805350316752896

题目大意:给出一串绳子的长度,两根绳子在长度都缩短一半后可以连结在一起,编变成一根新绳子。求可能连起的绳子的最长长度。

思路:越早连结起来绳子被折叠的次数越多,那么让最短的绳子被折最多次,最长的绳子被折最多次就行了。排序算一算就行。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <algorithm>
#include <queue>
#include <map>
#include <set>using namespace std;vector<int> arr;int main() {
    int N;scanf("%d", &N);arr.resize(N);for (int i = 0; i < N; i++)scanf("%d", &arr[i]);sort(arr.begin(), arr.end());int sum = (arr[0] + arr[1]) / 2;for (int i = 2; i < N; i++)sum = (sum + arr[i]) / 2;printf("%d", sum);return 0;
}
  相关解决方案