考試總結 2022 02 10

2022-09-20 18:36:11 字數 1181 閱讀 9646

一種平方暴力就做法就是將每個點和它一步能覆蓋的點連邊,在新圖上找到所有沒有入度的強聯通分量

所以觀察這個做法本質上還是求沒有入度的強聯通分量,所以考慮維護乙個刪點序列,也就是在 $\rm dag$ 上後繼點比前驅點出現的位置早(被從圖上刪去的時間早)

如果得到這個序列之後直接模擬感染/傳染過程,倒序掃瞄序列,每次找最後沒有被傳染的點進行感染

由於感染每個點的代價是相同的,所以靠後的未傳染點必然是屬於沒有入度強聯通分量

不難發現上面說的序列和 $\rm tarjan$ 演算法本質是完全一樣的,那麼按照任一順序模擬傳染過程即可求出一組合法拓撲序

所以問題就是如何模擬傳染過程,可以使用點分樹實現,建樹時維護子樹中每個點到樹根在原樹上的距離 以及 每個點在點分樹上和根鏈上每個點的距離 並排序

模擬傳染過程時每個子樹根維護乙個指標表示指標之前的所有元素被感染過了,那麼剩下的過程就是暴力跳了!

code display

const int n=3e5+10;

int f[n],n,r[n],pter[n],siz[n],rt,nsum;

vector>sub[n],anc[n],g[n];

bool vis[n];

inline void findrt(int x,int fat)

ckmax(f[x],nsum-siz[x]);

if(f[x]1e9) return ;

sub[rt].emplace_back(dis,x);

anc[x].emplace_back(dis,rt);

for(auto e:g[x]) if(!vis[e.fir]&&e.fir!=fat) dfs(rt,e.fir,x,dis+e.sec);

return ;

}inline int resize(int x,int fat)

inline void solve(int x)

return ;

}vectorseq;

inline void cover(int x)

cover(sub[t.sec][pter[t.sec]-1].sec);

} }seq.push_back(x);

return ;

}signed main()

print(ans);

return 0;

}

20220210聯考 傳染

先膜卷爺。可以去卷爺那裡看,或者看我的,注意時限是 3s 希爾科試圖用微光控制祖安,祖安的地圖可以視為一棵樹,根據交通的便利程度,祖安的每個小城市有乙個傳播半徑 r i 一旦微光瀰散到此城市,那麼微光也會擴散到與它距離不超過 r i 的城市。當然我們會給出 n 1 條路徑及其長度 d i 希爾科想知...

2022 02 10 連岳摘抄

23 59 如果你不能 做你所愛的 就必須 愛你所做的 我覺得這就是真理。亞歷克斯 希勒 你膽子大,不好惹,作勢打人時,連媽媽都膽寒,全中國,有這殺氣的初一生,估計是個位數。這特質可以變成大優點,也可以變成大缺點。當它變成大優點時,你將不怕挑戰,不懼困難,不畏強敵,敢闖敢拼。世上沒什麼事能擋住你,你...

考試總結 CQOI2017 考試總結

再奮鬥一年,爭取ak noip2016 cqoi2017 這是去年我立的flag。看考場,電腦挺快,而且配置和評測機一樣,可以放心的在自己的電腦上卡常測試啦,好評。碼了一道fft的題,沒網只好拷著回家交,鍵盤蜜汁小,enter佔據了兩行,旁邊還有關機按鈕。座位安排奧妙重重,和巴蜀dyf大神坐在一起。...