码迷,mamicode.com
首页 > 其他好文 > 详细

SRM 624 Building Heights DivI 解读

时间:2015-08-07 13:09:57      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

几乎相同的一标题。欲了解更多请参阅:http://community.topcoder.com/stat?c=problem_statement&pm=13211&rd=15857

思维:

1 序列

2 大厦的当前数量的计算i时候,全部可能的最小建筑物改动数

3 每次计算i+1的时候。全部可能的最小建筑物改动数

4 同一时候能够比較得到i+1的时候最小改动数

得到的程序也不复杂

#include <vector>
#include <algorithm>
#include <limits.h>
#include <math.h>
using namespace std;

class BuildingHeights
{
public:
int minimum(vector<int> heights)
{
	int n = (int)heights.size();
	sort(heights.begin(), heights.end());
	vector<int> cost(n, 0);

	int ans = 0;
	for (int i = 0; i < n-1; i++)
	{
		int c = INT_MAX;
		for (int j = n-1; j > i; j--)
		{
			cost[j] = cost[j-1] + (heights[j]-heights[j-1])*(i+1);
			c = min(c, cost[j]);
		}
		ans ^= c;
	}
	return ans;
}
};



版权声明:笔者心脏靖,景空间地址:http://blog.csdn.net/kenden23/,可能不会在未经作者同意转载。

SRM 624 Building Heights DivI 解读

标签:

原文地址:http://www.cnblogs.com/hrhguanli/p/4710401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!