SRM 624 Building Heights DivI 题解
生活随笔
收集整理的這篇文章主要介紹了
SRM 624 Building Heights DivI 题解
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
和前面的題目差不多,具體看:http://community.topcoder.com/stat?c=problem_statement&pm=13211&rd=15857
思路:
1 排序
2 計(jì)算當(dāng)前建筑物數(shù)為i的時(shí)候,所有可能的最小建筑物修改數(shù)
3 每次計(jì)算i+1的時(shí)候,所有可能的最小建筑物修改數(shù)
4 同時(shí)可以比較得到i+1的時(shí)候最小修改數(shù)
得到的程序也不復(fù)雜
#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; } };
總結(jié)
以上是生活随笔為你收集整理的SRM 624 Building Heights DivI 题解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机专业第五轮学科评估排名,计算机第五
- 下一篇: h5 苹果12 拍照上传图片自动刷新页面