NOIP2013提高組 day2 花匠

2021-08-21 18:33:30 字數 710 閱讀 5221

–這道題是dp,但是寫錯了,還是貪心簡單,而且快

仔細觀察可以發現兩個條件其實意思就是這一排花最後要成波浪狀

那我們o(n)跑一遍就好了,就像把目前的花接到序列中去

根據序列目前的上公升下降判斷長度是否有增加:

如果改變了增減性,ans++

如果沒有改變,目前的這盆花肯定更優,雖然不加長度,但是要更新序列的最後一位(這樣後面的花就更有可能改變序列的增減性)

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn=1e5+5;

int n;

int h[maxn];

int f,g=-1;

int ans;

int main()

else

if(h[i]0)

else

if(g==-1)

else

if(h[i]1;}}

f=h[i];

}cout

0;}

Noip2013提高組day2 花匠

我們把原序列大概抽象在函式圖上,就會得出這樣的結果 如下圖 顯然,圈出來的點就是我們要保留的,不可能存在刪掉一大段會存在更優的情況。做法就是每次順著找乙個最高的點,再找乙個最低的點,如果存在相同的則視為乙個點。include include include define fo i,j,k for i...

NOIP2013提高組 day2 積木大賽

這道題正解是dp或是貪心,本寶用的是模擬,神奇的過了喲 先sort一下從大到小,因為我們可以看成在疊最高的那個時,順便完成了與它相鄰的一些 具體實現請手打,描述太麻煩啦 我們這樣處理就能快很多,可能是資料不是很強,其實還是蠻快的 雖然沒有o n 快 include include include i...

NOIP2013提高組day2 華容道

給出一張n m的棋盤,有一些點上有障礙物,其他點上都是棋子。給出q次詢問,每次詢問給出乙個空格,乙個目標棋子,乙個目標位置,每一步可以把乙個棋子移進空格,求把目標棋子移動到目標位置的最小步數。n,m 30,q 500 第一眼看到就知道是大暴力題,發現詢問次數少的時候一次bfs就解決了,那麼詢問多起來...