zzuli 2900 阿朱與旭寶寶的高樓遊戲

2022-10-09 07:30:12 字數 978 閱讀 6754

原題鏈結

樣例輸入

2

7 3

4 2 2 1 1 1 2

4 31 1 1 2

樣例輸出
5

1

思路

一定存在乙個最高的高樓,這個高度一定是最後的高度,那麼我們最先相出的做法就是,找到這個高樓的位置,然後在其兩邊一直加知道所有的樓都相同,但是這麼寫特別麻煩,甚至不可寫。

對於這種區間操作的問題,我們可以考慮差分,對於差分陣列,其中可能會有三種情況 \(> 0 \quad < 0 \quad = 0\) ,對於 \(= 0\) 的情況我們可以忽略。那麼只剩下 \(< 0 \quad > 0\),我們先考慮 \(> 0\)的,假設\(a_i > 0\)因為我們只能對連續m個高樓執行+1的操作,那麼我們需要將 \([i-m,i)\)的區間內都加\(a_i\),這樣可以讓i-1的高樓和i一致。對於 \(< 0\) 的同理,我們正向做即可。

code

#include using namespace std;

using ll = long long;

const int n = 1e5 + 1;

int a[n];

inline void solve()

for(int i = 2; i + m - 1 <= n; i ++ ) if(a[i] < 0)

for(int i = 2; i <= n; i ++ ) if(a[i] != 0)

cout << ret << "\n";

}int main()

zoj 2900 DP(線段樹優化)

同樣是暴力,別人能過,我不能過,生活有的時候就是這麼無奈。dp i j k 表示前i個數取j個,最後一和是k的個數 然後改變dp順序可以將三維變為2維 注意下一下細節的地方。不然這樣暴力dp會超時 還有一種就是用線段樹來優化。優化到3770ms。不優化是6000 ms。有一點要注意的就是不能乙個都沒...

BZOJ2900 好玩的數字遊戲

好玩的數字遊戲 多組資料。每個測試點的資料組數不超過1000組。每一行僅乙個正整數n。保證沒有多餘的什麼奇怪的字元。每個測試點的資料最後一行一定是數字0。代表這個測試點的結束。對於每組資料,輸出相應的結果。大部分方法都是數字dp 我感到對奇偶性的分析不是很清晰 於是聽到了czt的做法 對於乙個k位長...

zzuli 1858 單詞翻轉

time limit 1 sec memory limit 128 mb submit 254 solved 141 submit status web board 在朋友的信裡變成了 yppah 請你編寫程式幫助小明還原來信內容吧。輸入乙個字串,以回車結束。該字串長度不超過100 包含多個單詞,單...