P5445 APIO2019 路燈(樹套樹)

2022-04-30 08:03:11 字數 1075 閱讀 7537

p5445 [apio2019]路燈

轉化為平面上的座標(x,

y)'>(x,y),se

t'>

set維護連續區間.

用樹套樹維護矩陣加法,單點查詢。

注意維護矩陣差分的時候,

$(x,y,v)$是對$(x,y)(n+1,n+1)$的矩陣做出貢獻

#include#include

#include

#include

#define ri register int

using

namespace

std;

intread()

#define n 600005

#define w 20000005

struct

e

bool

operator

< (const e &g) const

};set

g;set

::iterator it;

int n,t,a[n]; char opt[9

],cc[n];

intcnt,rt[n],lc[w],rc[w],s[w];

#define mid (l+r)/2

void ins1(int &o,int l,int r,int x,int

v)int ask1(int o,int l,int r,int x1,int

x2)void ins2(int x,int y,int v)

int ask2(int x,int y)

inline

void add(int x1,int y1,int x2,int y2,int

v)int

main()

for(it=g.begin();it!=g.end();++it) add((*it).l,(*it).l,(*it).r,(*it).r,t);

for(ri t=1;t<=t;++t)

else

else

a[x]^=1

; }

}return0;

}

洛谷P5443 APIO2019 橋梁

apio場外選手沒事休閒做題。看了yyb的題解才把這題做出來 對操作進行分塊,把每 text 個操作分成1組,裡面大概有2類 沒被修改過的和被修改過的。接著對塊內詢問進行離線。對於沒有修改過的 我們可以直接排序然後把他們加入並查集。對於修改過的,我們看他的時間是否大於當前操作的時間,如果大於則加入原...

APIO2019簡要題解

看到這種題,我們肯定會想到 x,y 一定有迴圈 我們要找到迴圈節的長度 推一下發現 x 的迴圈節長為 frac 等一下,t 是整數,所以迴圈節長為 frac y 的迴圈節長為 b 所以 x,y 的迴圈節長為 lcm frac,b frac 對每個時間段對迴圈節長取模進行區間覆蓋即可 用了 int12...

洛谷 P5445 路燈

題意見洛谷。首先考慮實時維護 forall i,j in 1,n 目前有多少時刻滿足能從 i 到達 j 顯然,i 能到達 j 當且僅當 i,j 在同乙個亮燈連續段裡。將當前狀態剖成若干個極大亮燈連續段,那麼能否到達關於 i,j 兩維的函式應該是由這些連續段,每段分別在 i 軸和 j 軸上作為兩條鄰邊...