8.18 模拟赛小记 & 学习

谔谔谔谔。菜翻天。

今天模拟赛题目传送门。


A.跳蚤市场(mid)

话说我才看到这个英文名字叫 mid。然后就是手写 lower_bound 和 upper_bound 优化前缀和。


B.组合问题(anm)

这个错排之前上课讲过于是一眼了。但没开 long long 祖宗十八代都被炸死了。

式子(忘了之前写没写过):f[i] = (i - 1) * (f[i - 1] + f[i - 2])

考虑新加入的第 i 个数:1.之前的错排不变,让 i 在 i - 1 个位置中选一个

2.从 i - 1 个数里选一个放在 i 的位置,i 放在另一个的位置,其余的有 f[i - 2] 种选法。


C.旅行(day)

图论题。

分层图 or 魔改最短路。

分层图:好几层。O(n)。

魔改最短路:周几的时间作为边权。


D.购物(trade)

数据结构题,有单点修改和区间查询。感觉分块是可以做的,但是没调出来。遂打暴力。

正解是 线段树维护 dp。


下午讲了 tarjan:

弱连通(有向图):有向边看成无向变,若连通。

强连通(有向图):各点全都连通。

割点:删掉这个点,整张图不再连通(只剩一个点不算)。

割边:删掉该边该图不再连通。

tarjan:在有向图里找强连通分量,在无向图中找割点割边点双边双,环,缩点。

找割点:找连接着独立的连通块的点:换根 dp,因为要在树上,所以根据dfs序建树。

求点双连通分量:求没有割点的最大连通块(最大的点双):栈,找割点,弹。

求割边:类似割点。

有向图里强连通分量缩点,无向图里边双连通分量缩点:建新点、新边,对内的边删了,保留对外的。

P8867 建造军营。

欧拉回路,欧拉路径。

posted @ 2023-08-18 14:01  Moyyer_suiy  阅读(8)  评论(0编辑  收藏  举报