牛客小白月賽13 H(單調棧 樹狀陣列)

2022-08-21 19:00:14 字數 904 閱讀 3868

題意:給乙個柱狀圖,包括每個矩陣的寬度和高度,求能組成的最大矩陣的面積。

思路:顯然最大矩陣的高一定為n個矩陣中的乙個矩陣的高,所以不訪用單調棧求出每個矩陣左邊、右邊第乙個高度小於該矩陣的下標。然後用樹狀陣列求出該區間的寬度和,遍歷一遍即可得到結果。演算法複雜度o(nlogn),順便吐槽這題資料,一朋友沒用單調棧暴力求區間,複雜度為o(n^2),竟然也過了。。

ac**:

#includeusing

namespace

std;

typedef

long

long

ll;const

int maxn=1000005

;int

n,p;

inth[maxn],stk[maxn],l[maxn],r[maxn];

ll tr[maxn],ans;

int lowbit(int

x)void update(int x,int

num)

}int query(int

x)

return

ans;

}int

main()

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

scanf("%d

",&h[i]);

h[0]=h[n+1]=0

; stk[p=0]=0

;

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

stk[p=0]=n+1

;

for(int i=n;i>=1;--i)

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

printf(

"%lld\n

",ans);

return0;

}

牛客小白月賽13 補題(ACDG)

a 通過已經給的 打表找規律,偶數輸出 1,奇數輸出1 includeusing namespace std int main void huaj ll a,ll b int main qianz 0 0 houz n 1 0 qianz 1 mp 1 houz n mp n for i 2 i n...

牛客小白月賽3 H紀年

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld cwbc和xhrlyb在學習干支紀年法。干支紀年法是中國曆法上自古以來就一直使用的紀年方法。干支是天乾和地支的總稱。甲 乙 丙 丁 戊 己 庚 辛 壬 癸等十個符號叫天...

牛客小白月賽3 H 紀年

cwbc和xhrlyb在學習干支紀年法。干支紀年法是中國曆法上自古以來就一直使用的紀年方法。干支是天乾和地支的總稱。甲 乙 丙 丁 戊 己 庚 辛 壬 癸等十個符號叫天乾 子 醜 寅 卯 辰 巳 午 未 申 酉 戌 亥等十二個符號叫地支。為了方便程式的書寫,我們不妨將天乾記做1到10,地支記做1到1...