省选前的做题记录

由于篇幅限制,只会简略地概括做法...

3.31

百度地图的实时路况

链接
不经过某点,就在floyd的时候跳过某点,用分治做这个过程\(O(n^3logn)\)

uoj310

很早就会了的题,正好在课件里,就写一下

loj6488

这也是一道很早就会了的但没写代码的题
有个坑点是做减法卷积,要把某一个数组下标做不进位减法,我下意识以为是二进制,就没有取反下标...

4.1

noi.ac#1758
dp套dp,所以为啥压\(2^{64+6}\)位,状态只有这么少啊/jk
zroi#1838
我也不知道为什么场上会这么sb:
\(g(n)\)\(k\)个数\(\text{lcm}\)\(n\)的方案数,\(g=\mu *\sigma_0^k\)
然后答案为:

\[\sum\limits_{d=1}^n \frac{n}{d}g(d) \]

这显然可以洲阁筛,但我不会,于是就拿了暴力分跑路了
正解特别简单:

\[\sum\limits_{d=1}^n \sum\limits_{a_1|d,a_2|d,\ldots,a_k|d}=\sum\limits_{d=1}^n \sigma_0^k(d) \]

直接\(\text{min25}\)

tree

题意:
给定一棵带点权的树,两种操作:将某点点权增加一个正整数,查询所有点权\(\ge v\)的点的连通块个数

连通块个数等于点减边数
故我们维护\((u,v),min(a_u,a_v)\ge v\)的边数即可
\(1\)定为根,每个点维护比自己大的儿子节点,暴力修改父亲
总复杂度\(O((m+n)(logn+logV))\)

4.2

cf1091H

注意到sg函数较小,直接bitset

gym102367K

结论题,证明类似nim

4.4

uoj607

觉得太占地方,新开了一篇
题解

4.5

cf1503c

cf1503d

最后是这样的形式

\[c_1< c_2< \cdots< c_n\\ d_1> d_2> \cdots> d_n \]

\(1,2,\ldots,n\)必须出现在\(c\)的前缀与\(d\)的后缀,故没有一张卡同时出现\([1,n]\)

\(f_i\)为数字\(i\)对面的数字。
对于一组合法的形式,可以看到\(c\)前缀(\([1,n]\)),随着\(c\)增大,\(d\)减小;\(d\)后缀,\(d\)减小,\(c\)增大。
这一意味着,有解当且仅当可以将\(f_1,f_2,\ldots,f_n\)分成两个递减的子序列。

分成两个递减子序列,是一个经典的贪心问题。
考虑\(\min\limits_{j\le i}f_j>\max\limits_{j>i}f_j\)的位置\(i\),将\(i\)\(i+1\)放置隔板,那么整个序列被划分为了多个段。
这些段彼此独立,每个段选出任意一种方案,然后组合起来,这样还是两个递减子序列。
容易发现,每个段有唯一的分解方法,那么这种方法必定为贪心。

总复杂度\(O(n)\)

4.6

usaco april open

打了场usaco,ak了,顺便还踩了b的标算??

icpc昆明

学了个新科技,复习了很久没做过的东西qwq

uoj608

一点结论都没猜出来...

4.7

uoj424

short LIS

arc101e

arc106e

\(O(nlogn)\)做法

4.8

【模板】AC自动机

arc101f

愤怒的小N

cf1437g

暴跳fail,\(O(\sum |S|\sqrt{\sum |S|})\)

cf587f

4.9

loj2197

\(\max (x\cdot x_0+y\cdot y_0)\)
\(b=x\cdot x_0+y\cdot y_0\)
\((-x)\cdot x_0+b=y\cdot y_0\)
根据\(y_0\)的正负性,分别在上凸壳和下凸壳二分

posted @ 2021-03-31 19:49  Grice  阅读(107)  评论(0编辑  收藏  举报