傳送門
題意:給定乙個長為$n$的序列,定義$f(x)$表示所有(長為$x$的區間最小值)的最大值,求$f(1)$~$f(n)$。
看好多人都用並查集做的,然而我並不想寫……既然品酒大會可以字尾陣列+並查集也可以直接用字尾樹遞推,那這個問題直接上樹再遞推也行吧……
跟rmq有關的乙個樹形結構就是笛卡爾樹,那麼我們構建笛卡爾樹後自底向上遞推一遍即可,對每個節點更新它對應區間長度的答案,最後根據$f(x)\ge f(x+1)$更新一遍所有的$f$即可。
1 #include2 #include3 #include4view codeusing
namespace
std;
5const
int maxn=200010;6
void
bfs();
7int n,a[maxn],f[maxn],root,lc[maxn]=,rc[maxn]=,s[maxn],top=0,q[maxn],size[maxn]=;
8int
main()
23bfs();
24for(int i=n;i;i--)f[i]=max(f[i],f[i+1
]);25
for(int i=1;i<=n;i++)printf("
%d "
,f[i]);
26return0;
27}28void
bfs()
37for(int i=n;i;i--)
42 }
從零開始的canvas
最近工作都是增刪改查。正好you有時間學點新東西,er而不是單純的業務上的東西 所以就學學canvas吧 sho首選建立乙個canvas var c document.getelementbyid mycanvas var ctx c.getcontext 2d 然後進行定義 ctx.beginpa...
從零開始的聯合
關鍵字 union,語法與struct樣,區別是所有成員共用一塊儲存空間。當給其中乙個成員賦值時,其它成員的值也會發生變化。使用union判斷系統是大端還是小端。int num 0x01020304 0xe1e2e3e4 num 低位位址儲存低位資料 小端。0xe1e2e3e4 0x04 0xe1e...
從零開始的openstack之路
一 它是什麼,能幹什麼 openstack是乙個搭建雲平台的乙個解決方案 可以搭建公有雲,私有雲,企業雲。順便說一下,企業雲將是openstack的用武之地 二 openstack組成 openstack更像是經過計算機的72變之後的產物。包括 7個核心元件 compute 計算 object st...