P1969 積木大賽

来源:http://www.cnblogs.com/zwfymqz/archive/2017/05/10/6837990.html
-Advertisement-
Play Games

題目描述 春春幼兒園舉辦了一年一度的“積木大賽”。今年比賽的內容是搭建一座寬度為n的大廈,大廈可以看成由n塊寬度為1的積木組成,第i塊積木的最終高度需要是hi。 在搭建開始之前,沒有任何積木(可以看成n塊高度為 0 的積木)。接下來每次操作,小朋友們可以選擇一段連續區間[l, r],然後將第第 L ...


題目描述

春春幼兒園舉辦了一年一度的“積木大賽”。今年比賽的內容是搭建一座寬度為n的大廈,大廈可以看成由n塊寬度為1的積木組成,第i塊積木的最終高度需要是hi。

在搭建開始之前,沒有任何積木(可以看成n塊高度為 0 的積木)。接下來每次操作,小朋友們可以選擇一段連續區間[l, r],然後將第第 L 塊到第 R 塊之間(含第 L 塊和第 R 塊)所有積木的高度分別增加1。

小 M 是個聰明的小朋友,她很快想出了建造大廈的最佳策略,使得建造所需的操作次數最少。但她不是一個勤於動手的孩子,所以想請你幫忙實現這個策略,並求出最少的操作次數。

輸入輸出格式

輸入格式:

輸入文件為 block.in

輸入包含兩行,第一行包含一個整數n,表示大廈的寬度。

第二行包含n個整數,第i個整數為hi 。

輸出格式:

輸出文件為 block.out

僅一行,即建造所需的最少操作數。

輸入輸出樣例

輸入樣例#1:
5
2 3 4 1 2
輸出樣例#1:
5

說明

【樣例解釋】

其中一種可行的最佳方案,依次選擇

[1,5] [1,3] [2,3] [3,3] [5,5]

【數據範圍】

對於 30%的數據,有1 ≤ n ≤ 10;

對於 70%的數據,有1 ≤ n ≤ 1000;

對於 100%的數據,有1 ≤ n ≤ 100000,0 ≤ hi≤ 10000。

這題其實DP也可以做

思路就是在建前面需要的次數和(後面的高度-當前的高度+建造次數里取最大值)

方程:dp[i]=max(dp[i-1],dp[i-1]+a[i+1]-a[i]);

 

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 using namespace std;
 6 const int MAXN=100001;
 7 int a[MAXN];
 8 int dp[MAXN];
 9 int ans;
10 int main()
11 {
12     int n;
13     scanf("%d",&n);
14     for(int i=1;i<=n;i++)
15         scanf("%d",&a[i]);
16     for(int i=0;i<=n-1;i++)
17         dp[i]=max(dp[i-1],dp[i-1]+a[i+1]-a[i]);
18     printf("%d",dp[n-1]);
19     return 0;
20 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in or... ...
  • 題目描述 對一個給定的自然數M,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為M。 例子:1998+1999+2000+2001+2002 = 10000,所以從1998到2002的一個自然數段為M=10000的一個解。 輸入輸出格式 輸入格式: 包含一個整數的單獨一行給出M的值(10 ...
  • 題目描述 輸入二個正整數x0,y0(2<=x0<100000,2<=y0<=1000000),求出滿足下列條件的P,Q的個數 條件: 1.P,Q是正整數 2.要求P,Q以x0為最大公約數,以y0為最小公倍數. 試求:滿足條件的所有可能的兩個正整數的個數. 輸入輸出格式 輸入格式: 二個正整數x0,y ...
  • 題目描述 科學家們在Samuel星球上的探險得到了豐富的能源儲備,這使得空間站中大型電腦“Samuel II”的長時間運算成為了可能。由於在去年一年的辛苦工作取得了不錯的成績,小聯被允許用“Samuel II”進行數學研究。 小聯最近在研究和約數有關的問題,他統計每個正數N的約數的個數,並以f(N ...
  • LeetCode : two sum 第一次寫博客,算是熟悉這些編輯環境吧,本來是打算在csdn上用markdown寫的,結果改了博客介紹就被關閉了,暈死。。。好了,話不多說,今天打算拿LeetCode上的第一題:Two Sum來分享試驗一下。 題目描述:Given an array of inte ...
  • 1.JSP頁面中設置輸入選項和驗證碼 <form action=login.do" method="post" > <div class="line_1" > <span class="line_1_span">會員登錄</span> <input type="text" class="form-c ...
  • 題目描述 n 個小伙伴(編號從 0 到 n-1)圍坐一圈玩游戲。按照順時針方向給 n 個位置編號,從0 到 n-1。最初,第 0 號小伙伴在第 0 號位置,第 1 號小伙伴在第 1 號位置,……,依此類推。游戲規則如下:每一輪第 0 號位置上的小伙伴順時針走到第 m 號位置,第 1 號位置小伙伴走到 ...
  • step1. 導包(導入要使用的標簽的jar文件)。 step2. 使用taglib指令引入要使用的標簽。 taglib指令: uri:標簽的命名空間。 prefix:命名空間的別名。 註: 命名空間:是為了區分同名的元素而添加的首碼。自定義標簽: step1. 寫一個java類,繼承SimpleT ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...