石家庄二中学习记录

· · 生活·游记

1.24

做了:

P3130(线段树) P11600(数学) P1168(优先队列) P1347(图论)

P1208(贪心) P1031(贪心) P1094(贪心) P1969(贪心)

P1190(贪心 + 线段树) P2440(二分)

贪心要对拍,证明可能是伪证,一定要写,写了可能有分,不写一定没分。

二分查找需要数组有序,注意边界。

std::lower_bound(a,a+n,x):区间需要左闭右开,返回数组中第一个 大于等于 x 的指针。

std::upper_bound(a,a+n,x):区间需要左闭右开,返回数组中第一个 大于 x 的指针。

1.25

做了:

P1233(二分) P1719(二维前缀和) P3143(贪心 + 双指针) P10334(贪心 + 单调栈)

P1496(离散化) P2367(差分) P3406(差分) P5638(前缀和)

P2251(st 表/线段树) P1083(差分/线段树) P1387(二维前缀和) P1901(单调栈)

P2004(二维前缀和) P2216(st 表) P1694(贪心) P1198(线段树)

模拟赛

\Huge{一定要选对语言}

全选的 \text{C++98},爆零了。

讲了贪心和随机化,随机化一般不会 \color{red}{W\!A}

随机化导入头文件 <random><ctime>

$[0,2^{64}-1]$:`mt19937_64 _Rand(time(0));` # 1.27 做了: >[P2709](/problem/P2709)(莫队) 主要做了 $\text{vjudge}$ 题单上的分块题。 讲了分块和莫队,比较重要的算法。 分块块长 $\sqrt{n}$,时间复杂度 $O(t\sqrt{n})$。 莫队要离线处理,先排序,把左指针设为 $1$,右指针设为 $0$,块长 $\dfrac{n}{\sqrt{t}}$,时间复杂度 $O({n\sqrt{t}})$。 # 2.3 打模拟赛。 + $T1$ 是随机化 $+$ 异或前缀和,我写的莫队挂了,只有 $10$ 分。 + $T2$ 是莫队 $+$ 桶,我写的 $O(nm)$ 的暴力有 $40$ 分。 + $T3$ 是贪心,数据过水把我暴力放过去了,后来又学习了正解。 + $T4$ 是反悔贪心 $+$ 单调队列优化,我用的 `vector` $+$ 暴力有 $45$ 分。 # 2.4 做了: >[P4462](/problem/P4462)(莫队) [P1775](/problem/P1775)(区间 $dp$) [P1880](/problem/P1880)(区间 $dp$) [AT_abc163_e](/problem/AT_abc163_e)(区间 $dp$) > >[P1220](/problem/P1220)(区间 $dp$) [P1435](/problem/P1435)(动态规划 $dp$) [P1533](/problem/P1533)(可持久化线段树) 讲了 $dp$,主要是做题。 # 2.5 做了: >[P2796](/problem/P2796)(树形 $dp$) [P1063](/problem/P1063)(区间 $dp$) 讲了树形 $dp$,一下午都在调一个蓝题,用树状数组 $+$ $dp$,做法错了。 晚上模拟赛。 + $T1$ 是简单贪心,拿下 $100pts$。 + $T2$ 是 $dp$,初始化有问题,需要加上 `dp[i][0]=0`,$90pts$。 + $T3$ 是换根 $dp$,写错了,最后交了个 $O(n^3)$ 的 $\text{Floyd}$,$40pts$。 + $T4$ 是区间 $dp$,想到了,不会状态转移方程,写了个爆搜 $+$ 特判,$90pts$。 # 2.6 做了: >[P5908](/problem/P5908)($\text{spfa}$) [P1364](/problem/P1364)($\text{Floyd}$) [P2052](/problem/P2052)($\text{dfs}$) [P2016](/problem/P2052)(树形 $dp$) 讲了树($\text{LCA}$、直径、重心 $\dotso$ $\dotso$),做题。 $\text{LCA}$ 的时间复杂度:预处理 $O(n\log n)$,单次查询 $O(\log n)$。 # 2.7 做了 > [P2419](/problem/P2419)(图论) [P4427](/problem/P4427)($\text{LCA}$ $+$ 树上前缀和) [P2330](/problem/P2330)(最小生成树) 晚上模拟赛, + $T1$ 是结论题,拿下 $100$。 + $T2$ 是树形 $dp$,一直死磕 $T2$,在 $20:00$ 左右过大样例。 + $T3$ 是分层图,写的暴力,拿了 $10$ 分。 + $T3$ 要跑三边 bfs,$\text{Floyd}$ 做法拿了 $48$。 # 2.8 做了: >[P2024](/problem/P2024)(并查集) [P5076](/problem/P5076)(二分) [P1892](/problem/P1892)(并查集) [P8724](/problem/P8724)(分层图) > >[P1631](/problem/P1631)(堆) 讲了并查集和平衡树基础,一下午试图写出平衡树模板,失败了。