紹興一中模擬賽3 19 時光流轉

2021-09-13 01:15:52 字數 2177 閱讀 4270

離線以後點分

對於每個點,都用這個點的祖先把這個點的子樹更新一遍,

考慮到操作時間早的才能更新晚的和題目中說的「路徑上邊權都大於等於val

valva

l」,那就用樹狀陣列做一下二維偏序就行了

#include

using

namespace std;

typedef

long

long ll;

#define rep(i,a,b) for(register int i=(a);i<=(b);++i)

#define dep(i,a,b) for(register int i=(b);i>=(a);--i)

inline

chargc(

)inline

intrd()

char pbuf[

100000],

*pp=pbuf;

inline

voidpc(

char ch)

inline

void

wri(ll x)

inline

void

wln(ll x)

inline

void

flush()

const

int n=

100002

;struct node

node

(int x_,

int y_,

int v_)

bool

operator

<

(node a)

const

}a[n]

,b[n]

;struct kke[n<<1]

;int dep[n]

,h[n]

,tot,tot1,tot2,op[n]

,x,y,z,u,sz[n]

,n,m,mx[n]

,rt,st[n]

;ll t[n]

,ans[n]

;bool vis[n]

;vectormd[n]

;vector<

int>q[n]

,v;void

add(

int x,

int y,

int z)

,h[x]

=tot;

}void

clear

(int x)

void

add(

int x,

int y)

ll query

(int x)

void

getrt

(int u,

int fa)

void

init

(int u,

int fa)

void

dfs1

(int u,

int w)

void

dfs2

(int u,

int fa,

int w)

void

solve

(int u)

rep(j,

1,tot1)

clear

(a[j]

.y);

}void

work

(int u)

u=rt;

solve

(u),vis[u]=1

;for

(int i=h[u]

,v;i;i=e[i]

.ne)if(

!vis[v=e[i]

.to]

)work

(v);

}int

main()

else

} dep[0]

=-1,

init(1

,0);

mx[0]

=1e9

;work(1

);rep(i,

1,m)

if(op[i]==1

)wln

(ans[i]);

flush()

;}

紹興一中模擬賽3 13 排列的區間最大值限制

有乙個大小為n n 109 n n 10 9 n n 10 9 的排列和m m 50 m m 50 m m 50 個限制,每個限制 l,r,q l,r,q l,r,q 表示在區間 l,r l,r l,r 內的最大值必須是q qq,問是否存在乙個滿足所有條件的排列 考慮貪心 網路流也可以做,本質是一樣...

題解 紹興一中 7 26 T3

傳送門 模擬賽的t3 沒追求的我直接暴力bfs70分 很明顯的需要記錄狀態vis u hp vis u hp vis u hp 表示是否出現過到點u,體力為hp這種情況 70分沒毛病 比較秒的小優化思想是記錄之前到過每個點的體力最大值,這樣bfs時如果體力大於目標點之前最大體力才入隊,vis陣列就不...

2019暑假紹興第一中學遊記

12 40到了衢州二中,老葉講了點東西就上路 去紹興 了。路上坐大巴坐了四個小時,看 abc 寫了下他部落格的 argon 主題,然後做了會兒作業。到了紹興第一中學旁邊的某學校的交流中心下榻,和 abc 乙個房間,打了 10161.一本通 5.2 練習 4 葉子的染色,再複習了下板子 11 30 就...