A1125 Chain the Ropes (25分)

一、技术总结

  1. 题目的意思就是给出n段绳子,然后每次选取两段进行打结合成一段绳子(然后继续参与打结),但是会使得各自的长度减半。
  2. 显然可以知道,越长的绳子越往后进行打结,最终得到的长度越长,输出结果为取整,向下取整。
  3. 最后取整使用,强制类型转换。

二、参考代码

#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a, int b){
	return a < b;
}
int main(){
	int n;
	double sum = 0;
	int count[10010];
	scanf("%d", &n);
	for(int i = 0; i < n; i++){
		scanf("%d", &count[i]);
	}
	sort(count, count + n, cmp);
	for(int i = 0; i < n; i++){
		if(i == 0){
			sum += (count[i] + count[i+1]) / 2;
			i += 1;
		}else{
			sum = (sum + count[i]) / 2;
		}

	}
	printf("%d", (int)sum);
	return 0;
}
posted @ 2020-06-06 21:18  睿晞  阅读(111)  评论(0编辑  收藏  举报