洛谷 P3400 倉鼠窩

2021-07-24 23:57:48 字數 907 閱讀 5080

題目描述

萌萌噠的created equal是乙隻小倉鼠,小倉鼠自然有倉鼠窩啦。

倉鼠窩是乙個由n*m個格仔組成的行數為n、列數為m的矩陣。小倉鼠現在想要知道,這個矩陣中有多少個子矩陣!(實際上就是有多少個子長方形嘛。)比如說有乙個2*3的矩陣,那麼1*1的子矩陣有6個,1*2的子矩陣有4個,1*3的子矩陣有2個,2*1的子矩陣有3個,2*2的子矩陣有2個,2*3的子矩陣有1個,所以子矩陣共有6+4+2+3+2+1=18個。

可是倉鼠窩中有的格仔被破壞了。現在小倉鼠想要知道,有多少個內部不含被破壞的格仔的子矩陣!

【題目分析】

單調棧,分每一排為底邊的時候,然後統計乙個方框之內的個數。(只可意會不可言傳)。

【**】

#include 

#include

#include

#include

#define ll (long long)

#define reg register

using

namespace

std;

intmap[3005][3005],h[3005][3005];

int n,m,top;

long

long ans=0;

struct nodesta[4001];

int read()

return ret;

}int main()

else

if (sta[top-1].hi>=h[i][j])

}if (h[i][j]==sta[top].hi) sta[top].wi++;

else}}

printf("%lld\n",ans);

}

洛谷P3398 倉鼠找sugar

裸的lca。對於每次詢問,設a,b的lca為a,c,d的lca為b,分兩種情況討論 1 a與b的深度相同,此時二人相遇的充要條件為a b,即四個點的最近公共祖先相同。2 a與b深度不同,設a的深度大於b的深度,若二人相遇,則c或d與a的lca一定為a。include include define m...

洛谷P3398 倉鼠找sugar

題目大意 給你一棵 n n leqslant10 5 個點的樹,m m leqslant10 5 次詢問,每次詢問路徑 a b 和路徑 c d 是否有交點 題解 經過觀察發現若有交點,在 lca 或 lca 一定有交,判斷一下即可 卡點 無 c code include include includ...

洛谷 3398 倉鼠找sugar

題目描述 小倉鼠的和他的基 me i mei mei 友 zi sug ar zi sugar zi su gar住在地下洞穴中,每個節點的編號為1 n1 n 1n。地下洞穴是乙個樹形結構。這一天小倉鼠打算從從他的臥室 a a a 到餐廳 b b b 而他的 同時要從他的臥室 c c c 到圖書館 ...