首页 > 其他分享 >【题解】#105. 「USACO1.3」Ski Course Design 题解(2023-07-01更新)

【题解】#105. 「USACO1.3」Ski Course Design 题解(2023-07-01更新)

时间:2023-07-01 16:12:18浏览次数:36  
标签:USACO1.3 01 int 题解 Course 2023 Ski

#105. 「USACO1.3」Ski Course Design 题解

题目传送门

欢迎大家指出错误并联系这个蒟蒻

更新日志

  • 2023-02-01 17:20 文章完成
  • 2023-02-03 16:09 文章审核通过
  • 2023-02-04 22:15 修改了注释
  • 2023-05-16 21:44 修改了 $\LaTeX$
  • 2023-07-01 15:59 修改了代码

题目知识点

模拟+搜索+枚举

题意说明

$N$ 座山峰( $1\le N \le1000$ ),每座山都有一个在 $0$ 到 $100$ 之间的整数的海拔高度。如果滑雪训练营的最高和最低的山峰海拔高度差大于17就要收税。如果他改变山峰的高度(使最高与最低的山峰海拔高度差不超过 $17$ ),约翰可以避免支付税收。 (偷税漏税+愚公移山?)
如果改变一座山 $x$ 单位的高度成本是 $x^2$ 单位,求约翰最少需要付多少钱。

代码+解释

// #105. 「USACO1.3」Ski Course Design
// code by:st20250113
#include <bits/stdc++.h> //伟大的万能头文件

using namespace std;

int a[1005]; // 用来存山峰的高度
int n; // 共有n座山峰
int ans = 1e9; // 存大一点,以防万一

int main() {
    cin >> n;
    for (int i = 0; i < n; i++) { // 这步不用解释了,凡是学过数组的人都知道
        cin >> a[i];
    }
    for (int low = 0; low + 17 <= 100; low++) { // low+17<=100指枚举山峰的最低高度,最低高度+17不能大于100
        int high = low + 17; // 最高高度不用枚举,直接加17就可以了。因为要用到最高高度,所以前面最低高度+17必须小于等于100
        int sum = 0; // sum用来存费用和。
        for (int i = 0; i < n; i++) { // 记得还要枚举一遍a数组
            if (a[i] < low) { // 如果太小时的情况
                sum += (low - a[i]) * (low - a[i]); // 增加到最低高度,因为这样花费最少
            }
            if (a[i] > high) { // 如果太大时的情况
                sum += (a[i] - high) * (a[i] - high); // 减少到最高高度,因为这样花费最少
            }
        }
        if (sum < ans) { // 如果现在的花费比原先的最小花费还小
            ans = sum; // 答案要的是最小花费,所以我们需要不断的更新
        }
    }
    cout << ans << endl;
    return 0; // 华丽结束
}
// QYC最帅

标签:USACO1.3,01,int,题解,Course,2023,Ski
From: https://www.cnblogs.com/szyawa/p/17519427.html

相关文章

  • 【题解】#68. 「NOIP2004」津津的储蓄计划 题解(2023-07-01更新)
    #68.「NOIP2004」津津的储蓄计划题解题目传送门欢迎大家指出错误并联系这个蒟蒻更新日志2023-02-0117:20文章完成2023-02-0316:09文章审核通过2023-02-0422:15修改了注释2023-05-2709:27修改了$\LaTeX$2023-07-0115:45修改了代码题目知识点模拟题目分析......
  • C/C++《数据结构课程设计》题目[2023-07-01]
    C/C++《数据结构课程设计》题目[2023-07-01]《数据结构课程设计》题目一、【大数四则运算】——线性表[习题描述]设计—个实现任意长的整数进行四则运算和幂次运算的演示程序。[基本要求]利用双向循环链表实现大数的存储,每个结点含一个整型变量。[实现提示]实现原理:任何一......
  • SFP3012A-ASEMI代理海矽美快恢复二极管SFP3012A
    编辑:llSFP3012A-ASEMI代理海矽美快恢复二极管SFP3012A型号:SFP3012A品牌:MHCHXM(海矽美)芯片个数:单芯片封装:TO-247恢复时间:≤75ns工作温度:-40°C~175°C浪涌电流:300A*1正向电流:30A反向耐压:1200V正向压降:2.2V~2.4V引脚数量:2SFP3012A特性:ASEMI代理的海矽美品牌SFP3012A是采用工艺芯片,该芯......
  • 参考资料------ 快速使用Python-Tkinter设计界面 方法与代码-20230701
    作者:干饭小熊猫链接:https://www.zhihu.com/question/68663671/answer/2519875621来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1简介1.1Tkinter是什么?Tkinter是Python自带的GUI库,Python的IDEL就是Tkinter的应用实例。Tkinter可以看作是Tk......
  • SFP3012A-ASEMI代理海矽美快恢复二极管SFP3012A
    编辑:llSFP3012A-ASEMI代理海矽美快恢复二极管SFP3012A型号:SFP3012A品牌:MHCHXM(海矽美)芯片个数:单芯片封装:TO-247恢复时间:≤75ns工作温度:-40°C~175°C浪涌电流:300A*1正向电流:30A反向耐压:1200V正向压降:2.2V~2.4V引脚数量:2SFP3012A特性:ASEMI代理的海矽美品牌SFP3012A是......
  • SFP3012-ASEMI代理MHCHXM(海矽美)快恢复二极管SFP3012
    编辑:llSFP3012-ASEMI代理MHCHXM(海矽美)二极管SFP3012型号:SFP3012品牌:MHCHXM(海矽美)封装:TO-247AB恢复时间:≤65ns正向电流:30A反向耐压:1200V芯片个数:双芯片引脚数量:3类型:快恢复二极管特性:快恢复、大电流浪涌电流:160A*2正向压降:1.75V~2.2V封装尺寸:如图工作温度:-40°C~175°CSFP3012特性超......
  • 20230701水题选做
    CF1676D题意给定一个无根树,点从\(1\)到\(n\)编号。你需要给每个点分配一个正整数权值\(w_i\)。定义一个节点为好节点,当且仅当其权值等于所有相邻节点的权值之和。请最大化好节点的个数,并且在好节点个数最大的前提下最小化所有节点的权值和。分析我们先考虑一种特殊情况,......
  • SFP3012-ASEMI代理MHCHXM(海矽美)快恢复二极管SFP3012
    编辑:llSFP3012-ASEMI代理MHCHXM(海矽美)二极管SFP3012型号:SFP3012品牌:MHCHXM(海矽美)封装:TO-247AB恢复时间:≤65ns正向电流:30A反向耐压:1200V芯片个数:双芯片引脚数量:3类型:快恢复二极管特性:快恢复、大电流浪涌电流:160A*2正向压降:1.75V~2.2V封装尺寸:如图工作温度:-40°C~175......
  • [COCI2011-2012#5] EKO / 砍树
    [COCI2011-2012#5]EKO/砍树题目描述伐木工人Mirko需要砍\(M\)米长的木材。对Mirko来说这是很简单的工作,因为他有一个漂亮的新伐木机,可以如野火一般砍伐森林。不过,Mirko只被允许砍伐一排树。Mirko的伐木机工作流程如下:Mirko设置一个高度参数\(H\)(米),伐木机升起一个......
  • 八期-day01-开班
    爬虫&APP逆向开发课程一个人介绍讲师:Justin联系方式:微信:616564099安卓APP逆向(腾讯会议+录制+转码MP4+运营+路飞学城+猿来官网)二课程介绍https://www.processon.com/view/link/6399a2f851757002840c1d4a#map1app逆向入门#1逆向设备与root-真机和模拟器......