鋪設道路 貪心

2021-10-23 06:23:05 字數 1171 閱讀 2575

題目鏈結

題意:

思路:

這個貪心思路可以。

可以看出來我們最開始肯定是整個n區域開始修,然後會遇到一段路被修好了,得分成倆個區間,但是,情況越分越複雜。所以,貪心大發神威。

我們可以看出,這個修路和最開始從**修是沒有關係的,那麼我們從第1段路開始修,但是由於可以修乙個區間,所以我們先判斷他的右邊的那個數,如果那個數比第乙個數小,那麼順便就填了,但是如果比他大,我們就得再用倆個數之差的天數去修第二天路(第二個數肯定比第乙個數大貪心的直接正確的原理 )那麼我們繼續下去,如果比他小,順便填了,如果比他大,那麼我就還得多用倆個數之差的天數去填(這裡需要好好想想,因為最開始整段修,如果這裡的前乙個數不是前面的全部數的最大數,那麼這裡將會出現0這個端點,也就是分成了倆個區間)接下來重複判斷即可。

可能說得有點抽象,如果不懂,可以私聊博主。

但是這個確實是貪心的好題

#include

using

namespace std;

#define newnode (listnode *)malloc(sizeof(listnode))

#define mem(a,b) memset(a,b,sizeof(a))

const

int n =

2e5+50;

const

int inf =

0x3f3f3f3f

;const

double eps =

1e-10

;const

unsigned

long

long mod =

998244353

;const

int ii =

3.1415926535

;typedef

long

long ll;

typedef

unsigned

long

long ull;

typedef pair <

int,

int> pii;

intmain()

貪心 牛客 道路鋪設

題目鏈結 題意 n個坑,每個坑有乙個深度,每次能選其中連續的一段,將這一段的深度減少1,問至少多少次可以把這些坑全部填成0 不能凸起來,也就是到0以後就不能再填了 思路 這道題是在牛客上做優先佇列時看到的,之前學長講過一道類似的題,可以用貪心寫,比優先佇列簡單,就沒有再用優先佇列。首先將題轉化成 把...

貪心 NOIP2018 鋪設道路

春春是一名道路工程師,負責鋪設一條長度為 n 的道路。鋪設道路的主要工作是填平下陷的地表。整段道路可以看作是 n 塊首尾相連的區域,一開始,第 i 塊區域下陷的深度為 d i 春春每天可以選擇一段連續區間 l,r 填充這段區間中的每塊區域,讓其下陷深度減少 i 在選擇區間時,需要保證,區間內的每塊區...

E 鋪設道路

題目 春春是一名道路工程師,負責鋪設一條長度為 n 的道路。鋪設道路的主要工作是填平下陷的地表。整段道路可以看作是 n 塊首尾相連的區域,一開始,第 i 塊區域下陷的深度為 d i 春春每天可以選擇一段連續區間l,r 填充這段區間中的每塊區域,讓其下陷深度減少 1。在選擇區間時,需要保證,區間內的每...