省选前的做题记录

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

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)个数( ext{lcm})(n)的方案数,(g=mu *sigma_0^k)
然后答案为:

[sumlimits_{d=1}^n frac{n}{d}g(d) ]

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

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

直接( ext{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)分成两个递减的子序列。

分成两个递减子序列,是一个经典的贪心问题。
考虑(minlimits_{jle i}f_j>maxlimits_{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 (xcdot x_0+ycdot y_0))
(b=xcdot x_0+ycdot y_0)
((-x)cdot x_0+b=ycdot y_0)
根据(y_0)的正负性,分别在上凸壳和下凸壳二分

原文地址:https://www.cnblogs.com/Grice/p/14603434.html