最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

P5019 [NOIP2018 提高組]鋪設(shè)道路

2023-01-28 20:12 作者:薄荷硬糖醬  | 我要投稿

題目:

題目背景

NOIP2018 提高組 D1T1

題目描述

春春是一名道路工程師,負責鋪設(shè)一條長度為?n?的道路。

鋪設(shè)道路的主要工作是填平下陷的地表。整段道路可以看作是?n?塊首尾相連的區(qū)域,一開始,第?i?塊區(qū)域下陷的深度為?di?。

春春每天可以選擇一段連續(xù)區(qū)間?[L,R]?,填充這段區(qū)間中的每塊區(qū)域,讓其下陷深度減少?11。在選擇區(qū)間時,需要保證,區(qū)間內(nèi)的每塊區(qū)域在填充前下陷深度均不為?00?。

春春希望你能幫他設(shè)計一種方案,可以在最短的時間內(nèi)將整段道路的下陷深度都變?yōu)?00?。

輸入格式

輸入文件包含兩行,第一行包含一個整數(shù)?n,表示道路的長度。 第二行包含?n?個整數(shù),相鄰兩數(shù)間用一個空格隔開,第?i?個整數(shù)為?di?。

輸出格式

輸出文件僅包含一個整數(shù),即最少需要多少天才能完成任務(wù)。

輸入輸出樣例

輸入?

6 ? 4 3 2 5 3 5

輸出

9

說明/提示

【樣例解釋】

一種可行的最佳方案是,依次選擇:?[1,6][1,6][1,6][1,6]、[1,2][1,2][1,1][1,1]、[4,6][4,6][4,4][4,4]、[4,4][4,4]、[6,6][6,6]、[6,6][6,6]

【數(shù)據(jù)規(guī)模與約定】

對于?30%30%?的數(shù)據(jù),1n10?;
對于?70%70%?的數(shù)據(jù),1n1000?;
對于?100%100%?的數(shù)據(jù),1n100000,0di10000?。

題目大意:

輸入數(shù)字n,表示數(shù)組的長度,每次只能在一個連續(xù)的區(qū)間里全部減1,直到全部為0為止,最少操作多少次

思路:

考了貪心算法

從第一個數(shù)字開始來判斷下一步到底需不需要加操作次數(shù),先記錄第一個坑要操作多少次(這個操作數(shù)是只可能增加不可能減少的,操作次數(shù)肯定會至少大于等于全部坑深度里面最深的那一個坑的深度),與第二個坑的深度作比較,有兩種情況:

1)第二個坑比第一個坑大

填第一個坑的時候會連著填了一點第二個坑,第二個坑沒填完要繼續(xù)填,所以要加操作數(shù):

操作數(shù)[i-1]=操作數(shù)[i]+坑[i]-坑[i-1];

2)第二個坑小于等于第一個坑

填一個坑的時候第二個坑也已經(jīng)被連著填完了,所以不需要增加操作數(shù):

操作數(shù)[i]=操作數(shù)[i-1];

循環(huán)……

輸出最后的操作數(shù)

易錯點:

不知道怎么寫,我直接看了別人的題解(采購一個)

代碼:

#include <iostream>

using namespace std;

int ans[100005],rode[100005],n;

int main()

{

? ? cin>>n;

? ? for(int i=0;i<n;i++)cin>>rode[i];

? ? ans[0]=rode[0];

? ? for(int i=1;i<n;i++)

? ? ? ? if(rode[i]<=rode[i-1]) ans[i]=ans[i-1];

? ? ? ? else ans[i]=ans[i-1]+rode[i]-rode[i-1];

? ? cout<<ans[n-1];

}



P5019 [NOIP2018 提高組]鋪設(shè)道路的評論 (共 條)

分享到微博請遵守國家法律
德惠市| 濮阳县| 高唐县| 盈江县| 乌拉特前旗| 轮台县| 宜良县| 舟山市| 湖口县| 黄浦区| 郸城县| 台东县| 罗田县| 承德市| 丽江市| 胶州市| 商南县| 都江堰市| 宜章县| 贵定县| 阜阳市| 库伦旗| 云安县| 定兴县| 济南市| 宝山区| 广州市| 昌宁县| 环江| 永嘉县| 壶关县| 思茅市| 华坪县| 正蓝旗| 多伦县| 光山县| 石河子市| 南投县| 石门县| 汉寿县| 同心县|