題目描述【題目分析】萌萌噠的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 到圖書館 ...