由于篇幅限制,只会简略地概括做法...
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)
然后答案为:
这显然可以洲阁筛,但我不会,于是就拿了暴力分跑路了
正解特别简单:
直接( 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
最后是这样的形式
(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)的正负性,分别在上凸壳和下凸壳二分