題解:洛谷 P3650 [USACO1.3] 滑雪課程設(shè)計Ski Course Design
本文分享的必刷題目是從藍(lán)橋云課、洛谷、AcWing等知名刷題平臺精心挑選而來并結(jié)合各平臺提供的算法標(biāo)簽和難度等級進行了系統(tǒng)分類。題目涵蓋了從基礎(chǔ)到進階的多種算法和數(shù)據(jù)結(jié)構(gòu)旨在為不同階段的編程學(xué)習(xí)者提供一條清晰、平穩(wěn)的學(xué)習(xí)提升路徑。歡迎大家訂閱我的專欄算法題解C與Python實現(xiàn)附上匯總貼算法競賽備考沖刺必刷題C | 匯總【題目來源】洛谷P3650 [USACO1.3] 滑雪課程設(shè)計Ski Course Design - 洛谷【題目描述】農(nóng)民約翰的農(nóng)場里有n座山峰每座山都有一個在 0 到 100 之間的整數(shù)的海拔高度。在冬天因為山上有豐富的積雪約翰經(jīng)常開辦滑雪訓(xùn)練營。不幸的是約翰剛剛得知稅法在滑雪訓(xùn)練營方面有新變化明年開始實施。在仔細(xì)閱讀法律后他發(fā)現(xiàn)如果滑雪訓(xùn)練營的最高和最低的山峰海拔高度差大于 17 就要收稅。因此如果他改變山峰的高度使最高與最低的山峰海拔高度差不超過 17 約翰可以避免支付稅收。如果改變一座山x單位的高度成本是x^2 單位約翰最少需要付多少錢才能使海拔最高的山峰與海拔最低的山峰的高度只差不超過 17 約翰只愿意改變整數(shù)單位的高度。【輸入】輸入的第一行是一個整數(shù)代表山峰的數(shù)量n。第 2 行到n1行每行一個整數(shù)。第i行的整數(shù)ai代表第i座山的海拔高度。【輸出】輸出一行一個整數(shù)代表約翰需要支付修改山海拔高度的總金額。【輸入樣例】5 20 4 1 24 21【輸出樣例】18【核心思想】問題分析給定n nn座山峰的海拔高度a i ∈ [ 0 , 100 ] a_i \in [0, 100]ai?∈[0,100]要求將所有山峰高度調(diào)整到某個區(qū)間[ L , L 17 ] [L, L17][L,L17]內(nèi)L LL為整數(shù)使得調(diào)整總成本∑ x i 2 \sum x_i^2∑xi2?最小其中x i x_ixi?為每座山調(diào)整的高度。這是一個枚舉 貪心問題關(guān)鍵在于確定最優(yōu)區(qū)間下界L LL。算法選擇排序預(yù)處理將山峰高度從小到大排序便于按區(qū)間處理枚舉區(qū)間下界由于原始高度范圍[ 0 , 100 ] [0, 100][0,100]最優(yōu)區(qū)間[ L , L 17 ] [L, L17][L,L17]的L LL只需枚舉[ 0 , 83 ] [0, 83][0,83]因L 17 ≤ 100 L17 \leq 100L17≤100貪心調(diào)整對每個L LL低于L LL的山峰提升到L LL高于L 17 L17L17的山峰降低到L 17 L17L17區(qū)間內(nèi)的山峰不動關(guān)鍵步驟讀入數(shù)據(jù)n nn和數(shù)組a [ 1.. n ] a[1..n]a[1..n]排序?qū) aa按升序排列枚舉下界L LLL LL從0 00到83 8383初始化sum 0遍歷每座山a j a_jaj?若a j L a_j Laj?Lsum (L - a_j)^2提升到L LL若a j L 17 a_j L 17aj?L17sum (a_j - L - 17)^2$降低到L 17 L17L17若在[ L , L 17 ] [L, L17][L,L17]內(nèi)不調(diào)整成本為 0更新答案minn min(minn, sum)輸出結(jié)果最小總成本m i n n minnminn時間/空間復(fù)雜度時間復(fù)雜度O ( 84 ? n ) O ( n ) O(84 \cdot n) O(n)O(84?n)O(n)枚舉 84 個下界每個遍歷n nn座山空間復(fù)雜度O ( n ) O(n)O(n)存儲山峰高度數(shù)組枚舉區(qū)間的核心思想?yún)^(qū)間長度固定題目要求極差≤ 17 \leq 17≤17即區(qū)間長度固定為 17只需確定下界L LL最優(yōu)調(diào)整策略對于固定區(qū)間[ L , L 17 ] [L, L17][L,L17]每座山獨立決策——低于下限就提到下限高于上限就降到上限區(qū)間內(nèi)不動。這是因為在區(qū)間約束下每座山的最優(yōu)調(diào)整就是投影到區(qū)間最近端點枚舉范圍壓縮原始高度∈ [ 0 , 100 ] \in [0, 100]∈[0,100]L LL的有效范圍僅為[ 0 , 83 ] [0, 83][0,83]枚舉量極小凸成本特性成本函數(shù)x 2 x^2x2是凸函數(shù)投影到區(qū)間的策略在獨立約束下是最優(yōu)的適用于帶區(qū)間約束的最小化調(diào)整、固定窗口滑動、離散枚舉優(yōu)化等問題【解題思路】【算法標(biāo)簽】#普及- #貪心【代碼詳解】#includebits/stdc.husingnamespacestd;intn,a[1005],minn1e9;intmain(){cinn;// 輸入nfor(inti1;in;i){// 輸入所有山峰高度cina[i];}sort(a1,an1);// 按照從大到小排序for(inti0;i83;i){// 遍歷山峰的最小高度最高高度就是i17intsum0;// 定義每輪總金額初始為0for(intj1;jn;j){// 遍歷所有山峰if(a[j]i){// 小于最小高度就增加兩者之差需要的成本sum(i-a[j])*(i-a[j]);}elseif(a[j]i17){// 高于最大高度也增加兩者之差需要的成本sum(a[j]-i-17)*(a[j]-i-17);}}minnmin(minn,sum);// 每輪統(tǒng)計后計算最小值}coutminnendl;// 輸出最小值return0;}【運行結(jié)果】5 20 4 1 24 21 18

相關(guān)新聞

BLE400藍(lán)牙物聯(lián)網(wǎng)開發(fā)平臺:從硬件解析到協(xié)議棧開發(fā)的完整指南

BLE400藍(lán)牙物聯(lián)網(wǎng)開發(fā)平臺:從硬件解析到協(xié)議棧開發(fā)的完整指南

1. 項目概述:BLE400是什么,以及它為何值得關(guān)注 如果你正在物聯(lián)網(wǎng)、智能穿戴或者無線傳感領(lǐng)域折騰,最近可能頻繁聽到“BLE400”這個詞。它不是一個新潮的營銷概念,而是一個實實在在的、基于低功耗藍(lán)牙技術(shù)的硬件開發(fā)平臺或模組型號…

2026/8/3 13:28:50 閱讀更多
PCIe轉(zhuǎn)M.2轉(zhuǎn)接卡全攻略:釋放閑置接口,低成本擴展高速NVMe固態(tài)硬盤

PCIe轉(zhuǎn)M.2轉(zhuǎn)接卡全攻略:釋放閑置接口,低成本擴展高速NVMe固態(tài)硬盤

1. 項目概述:當(dāng)PCIe接口遇上M.2迷你形態(tài)最近在折騰一臺老舊的迷你主機,想給它加裝一塊高速固態(tài)硬盤,但主板上唯一的M.2插槽已經(jīng)被占用了。翻箱倒柜找配件時,我看到了閑置的PCIe x1擴展槽和一塊小巧的M.2 2242 NVMe SSD。一個想法冒…

2026/8/3 13:18:49 閱讀更多
為什么寫 Prompt 時一定要加“你是 XX 專家”?

為什么寫 Prompt 時一定要加“你是 XX 專家”?

別再當(dāng)玄學(xué)了!為什么寫 Prompt 時一定要加“你是 XX 專家”? 如果你接觸過大語言模型(LLM),一定對這句話不陌生: “你是擁有 10 年經(jīng)驗的 XX 專家,請幫我……” 很多人覺得這不過是一句迎合 AI…

2026/8/3 13:18:49 閱讀更多
從火影到國風(fēng)少女:用ControlNet精準(zhǔn)控構(gòu)漫畫分鏡的6種高階姿勢,附可復(fù)用ControlNet權(quán)重包

從火影到國風(fēng)少女:用ControlNet精準(zhǔn)控構(gòu)漫畫分鏡的6種高階姿勢,附可復(fù)用ControlNet權(quán)重包

更多請點擊: https://intelliparadigm.com 第一章:從火影到國風(fēng)少女:ControlNet漫畫分鏡生成全景導(dǎo)覽 ControlNet 作為 Stable Diffusion 生態(tài)中關(guān)鍵的條件控制模塊,正深刻重塑二次元內(nèi)容創(chuàng)作范式——它不再僅依賴文本提示&#…

2026/8/3 14:28:51 閱讀更多
為什么92%的AI設(shè)計師接不到單?3個致命認(rèn)知偏差+5分鐘自檢表(限前200名領(lǐng)取診斷工具)

為什么92%的AI設(shè)計師接不到單?3個致命認(rèn)知偏差+5分鐘自檢表(限前200名領(lǐng)取診斷工具)

更多請點擊: https://kaifayun.com 第一章:AI設(shè)計接單的底層邏輯與行業(yè)真相 AI設(shè)計接單并非單純的技術(shù)交付,而是技術(shù)能力、商業(yè)認(rèn)知與用戶心理的三維耦合。其底層邏輯根植于“需求可建模性”——即客戶提出的問題是否能被結(jié)構(gòu)化為提示工程、…

2026/8/3 14:28:51 閱讀更多
ESP32網(wǎng)頁控制與實時數(shù)據(jù)顯示:從HTTP到WebSocket的物聯(lián)網(wǎng)實踐

ESP32網(wǎng)頁控制與實時數(shù)據(jù)顯示:從HTTP到WebSocket的物聯(lián)網(wǎng)實踐

1. 從零到一:為什么ESP32是網(wǎng)頁控制顯示的“天選之子” 如果你玩過Arduino,想給項目加個屏幕顯示數(shù)據(jù),大概率會經(jīng)歷一番折騰:要么屏幕引腳不夠用,要么刷新率上不去,要么想遠(yuǎn)程看看數(shù)據(jù)還得額外接個Wi-Fi模塊…

2026/8/3 14:28:51 閱讀更多
云計算如何革新數(shù)據(jù)科學(xué)工作流

云計算如何革新數(shù)據(jù)科學(xué)工作流

1. 為什么數(shù)據(jù)科學(xué)需要擁抱云計算? 十年前我剛?cè)胄袛?shù)據(jù)科學(xué)時,團隊還在用單機跑Python腳本處理幾十GB的數(shù)據(jù)。記得有次跑一個推薦算法模型,我的ThinkPad筆記本連續(xù)運轉(zhuǎn)了72小時后終于藍(lán)屏崩潰,一周的工作成果全部付諸東流。這種痛…

2026/8/3 14:18:51 閱讀更多
全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎,我們逆向拆解了它的字段置信度熔斷機制

全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎,我們逆向拆解了它的字段置信度熔斷機制

更多請點擊: https://kaifayun.com 第一章:全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎概覽 名片AI引擎是企業(yè)級智能文檔處理的核心組件,專注于高精度OCR、語義結(jié)構(gòu)化提取與跨語言實體對齊。截至2024年第三季度,全球范圍內(nèi)僅…

2026/8/3 0:07:47 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說說 項目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發(fā)過的QQ空間說說,那些記錄青春的文字…

2026/8/3 12:53:38 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號分配電路板。該型號(0100-02186)的核心特點如下:專用于Endura等半導(dǎo)體工藝腔室。集成信號路由與分配功能。連接控制…

2026/8/2 2:51:21 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機,適用于自動化設(shè)備及通用機械驅(qū)動。該型號(FFMN-32L-10-T0 40AX)的核心特點如下:三相交流異步電動機。額定…

2026/8/2 2:52:49 閱讀更多