1.3.6 Ski Course Design(滑雪场设计)

一、题目描述

Ski Course Design滑雪场设计

农民约翰的农场里有N座山峰(1 < = N < = 1000),每座山都有一个在0到100之间的整数的海拔高度。在冬天,因为山上有丰富的积雪,约翰经常开办滑雪训练营。 不幸的是,约翰刚刚得知税法在滑雪训练营方面有新变化,明年开始实施。在仔细阅读法律后,他发现如果滑雪训练营的最高和最低的山峰海拔高度差大于17就要收税。因此,如果他改变山峰的高度(使最高与最低的山峰海拔高度差不超过17),约翰可以避免支付税收。 如果改变一座山x单位的高度成本是x ^ 2单位,约翰最少需要付多少钱?约翰只愿意改变整数单位的高度。

PROGRAM NAME: skidesign
INPUT FORMAT

第一行:一个整数n 第二行到N+1行:每行是一座山的海拔高度

SAMPLE INPUT (file skidesign.in)

5 20 4 1 24 21

(约翰的农场有5座山,海拔为1,4,20,21和24)

OUTPUT FORMAT

约翰需要支付修改山海拔高度的总金额,最高和最低的山峰间高度差最多17。

SAMPLE OUTPUT (file skidesign.out)

18

(约翰保持高度为4、20和21的山的高度。他增高高度为1的山、变成高度4(花费 3 ^ 2 = 9)。他降低了高度为24的山变成高度21也花费3 ^ 2 = 9。)

二、解题思路

仔细分析,发现本题的数据很小,我们可以直接枚举长度为17的区间范围(0-100内,如(0,17) , (1,18), (2,19), ..., (83,100))。计算所有山峰要在这个范围内,改变山的高度所需要花费的成本。

下面是源代码:

usaco参考答案。

<span style="font-size:14px;">#include <fstream>using namespace std;int n,hills[1000];int main()
{ifstream fin("skidesign.in");fin >> n;for (int i=0; i<n; i++)fin >> hills[i];fin.close();// brute-force search// try all elevation intervals from (0,17) to (83,100)int mincost=1000000000;for (int i=0; i<=83; i++){// calculate the cost for elevation interval (i,i+17)int cost=0,x;for (int j=0; j<n; j++){// if hill is below the intervalif (hills[j]<i)x=i-hills[j];// if hill is above the intervalelse if (hills[j]>i+17)x=hills[j]-(i+17);// if hill is int the intervalelsex=0;cost+=x*x;}// update the minimum costmincost=min(mincost,cost);}ofstream fout("skidesign.out");fout << mincost << "\n";fout.close();
}
</span>

由于自身是初学者,编程能力有限,未达到专业程序员的水平,可能误导大家,请大家甄读;文字编辑也一般,文中可能会有措辞不当。博文中的错误和不足敬请读者批评指正。

USACO:1.3.6 Ski Course Design(滑雪场设计)相关推荐

  1. 【USACO 1.3】Ski Course Design

    n个点(n<=1000)大小范围[0,100],改变一些点的值,使得极差不超过17,代价为改变值的平方. 枚举修改后的最低高度low,维护最小代价. /* TASK: skidesign LAN ...

  2. Fluent Design System 设计语言元素

    Fluent Design System 设计语言共有元素,分别为光照(Light).深度(Depth).运动(Motion).材质(Material)和缩放(Scale),目前包括人脉.计算器和 G ...

  3. App 界的一股清流 音视频应有尽有 完全按照 Material design 规范设计的 App

    vld 项目地址:Cuieney/vld  简介:App 界的一股清流 音视频应有尽有 完全按照 Material design 规范设计的 App 更多:作者   提 Bug    标签: andr ...

  4. 【拓展】深度解析蚂蚁Ant Design的设计原则

    作者:菜菜不甜 https://www.zcool.com.cn/article/ZMTI1OTI1Mg==.html 本文讲述了Ant Design设计原则的相关内容,希望可以给到各位帮助. 『 A ...

  5. 深度解析蚂蚁Ant Design的设计原则

    『 Ant Design是什么 』 众所周知蚂蚁集团的B端产品是一个庞大的系统,数量多且功能复杂,而且变动频繁,常常需要设计师和开发人员能快速做出工作上的配合.同时这类产品中有存在很多类似的页面以及组 ...

  6. 第012天:Material Design界面设计语言

    其实长久以来,大多数人都认为Android系统的UI并不算美观,至少没有iOS系统的美观. 以至于很多IT公司在进行应用界面设计的时候,为了保证双平台的统一性,强制要求Android 端的界面风格必须 ...

  7. Design Play 设计稿预览,实时预览设计效果,最好用的设计稿预览工具

    [Design Play 设计稿预览]是一款能够实时预览Photoshop/Sketch/XD中设计稿的工具,专门为UI设计师.产品.研发等角色准备.它支持Wifi和扫码两种连接模式,能够主动发现PS ...

  8. Usaco Training 刷怪旅 第三层 第六题:Ski Course Design

    说实话,一开始看上一题的时候觉得太恶心就先来做这道,所以这题其实比上一题早做出来() Farmer John has N hills on his farm (1 <= N <= 1,00 ...

  9. usaco Ski Course Design

    看了别人的题解才会做的,我怎么就想不到枚举调整到的高度呢????????????????? /* ID: jinbo wu LANG:C++ TASK: skidesign */ #include&l ...

最新文章

  1. cocos2d基础介绍
  2. 工作流中切换数据库时---“禁止流转”
  3. 家里网线的接法和顺序
  4. LeetCode 1617. 统计子树中城市之间最大距离(枚举所有可能+图的最大直径)
  5. c语言 画线函数,c语言绘制函数曲线
  6. h3cne证书有必要考吗_大学生考幼师资格证有必要吗?有什么好处呢
  7. linux 把秒数转换为正常时间格式命令
  8. python模块datetime_Python模块-datetime
  9. python之 前端HTML/CSS基础知识学习笔记
  10. Dubbo-admin无法显示Group分组信息
  11. ubuntu 14.04 32bit依赖库解决
  12. (1)Spring框架----通俗易懂的IoC原理
  13. 最强分布式锁工具:Redisson
  14. IBM SPSS Amos下载与安装
  15. Ubuntu18.04安装后检测不到集成声卡问题
  16. 第一章 你到底做了多少无用功
  17. 【随笔】移动端input type|语义与IOS按键
  18. 48种数据分析可视化图表
  19. 霸屏三大综艺 小度强势破圈引发“胜利者效应”
  20. 关于谷歌邮箱注册收不到验证码——”此电话号码无法用于验证“的问题

热门文章

  1. 贪吃蛇小游戏(C++)
  2. mysql cascade的用法_MySql和Hibernate中关于cascade的用法
  3. 下次不敢《童梦奇缘》片尾曲铃声 下次不敢《童梦奇缘》片尾曲...
  4. Simhash 与汉明距离问题求解
  5. DeepOps的Python小笔记-天池龙珠计划-Python训练营-Task 02:DAY6
  6. 第七周作业:任务分解
  7. 英特尔携手天融信打造融合桌面云,助力企业“上云用数赋智”之旅
  8. string.Format对C#字符串格式化
  9. Niso II 设计过程中的时钟频率问题
  10. mifa F4户外无线蓝牙音箱 便携式迷你插卡小音响