摘要:
orzzzq 类似杜教筛的构造思想。 构造容易求的东西求出f的前缀和 不同之处是,杜教筛构造出两个可以快速求前缀和但是powerful number(简称pn)构造方法有所不同。 对于这个题 数据范围,min_25筛显然是过不去的。最多跑到1e11 $f(p^e)=p^k$启发 构造$g(x)=x^ 阅读全文
摘要:
CF183D T-shirt 考虑每次的选择,一定是选择一件衣服使得能送出的概率最大 f[i][j]表示,至少有j个人能穿第i个的概率 选择最大的n个f[i][j]就是答案。 直接dpO(m*n^2)会TLE 我们只要前n大,而f[i]显然单调 加入f[i][1],选择最大的。再计算f[i][2] 阅读全文
摘要:
[USACO18DEC]Balance Beam bk讲过的题还是不会 众所周知,期望经常会出现f[i]=a*f[i-1]+b*f[i+1]这样 可以高斯消元、设主元、k*x+b这种搞一搞。 但是,本题显然是:f[i]=max(w[i],a*f[i-1]+b*f[i+1])这种形式。 max很讨厌。 阅读全文
摘要:
CF704E Iron Man 经过不懈(抄题解)努力之后,终于AC了此题。 说起来很简单。 考虑一个链上的情况, 建立直角坐标系。 横坐标是t,纵坐标是距离链开头的距离d m个路径就是一个线段 那么能碰撞,当且仅当线段有交。 给一些线段的集合,求两两之间的第一个交点。 做法: 扫描线。 set维护 阅读全文
摘要:
https://loj.ac/problem/504 一类套路题. 首先这个玩意可以两个logn树套树做。。。。 naive地,把区间内的所有数拿出来放进堆里。不断取出。 太多了。 所以开始只保留那初始logn区间最小值,弹出之后再找出左右区间下一个 线段树维护最小值和最小值位置。 和超级钢琴,异或 阅读全文
摘要:
如果不断边,直接路径+,看边的权值。 这个相当于是区间加,单点查询 如果断边,很多路径变化了,就凉了。 考虑单点加,查询子树内部有没有包含所有的路径的一端。 考虑hash 给两端xor同一个随机值。 这样,子树没有出现或者出现两次都不合法,贡献都是0 出错概率就是每个点都是随机情况下,存在一个子集x 阅读全文
摘要:
CF446D DZY Loves Games 高斯消元好题 如果暴力地,令f[i][k]表示到i,有k条命的概率,就没法做了。 转化题意 生命取决于经过陷阱的个数 把这个看成一步 所以考虑从一个陷阱到另一个陷阱,不经过其他陷阱的概率p[i][j] 当然1出发到其他陷阱的概率也要得到。 然后相当于有一 阅读全文
摘要:
https://vjudge.net/problem/TopCoder-15135 之前做过:本质不同的回文子序列个数 本题:位置不同即为不同。 如果还是设$f[l][r]$表示$l$,$r$结尾,就难受了。转移就已经是$O(n^2)$了 所以,$f[l][r]$表示,$[l,r]$的回文子序列个数 阅读全文
摘要:
经典题。 经典差分约束模型。 但是 显然这个总长是有上下界的。 直接二分总长,判断有没有负环 如果没有负环好办,有负环就不知道怎么偏了。 因为没有单调性! (如果所有没有单调性的函数图像,都知道往哪里走更优, 岂不是全都可以二分了 ) 但是本题特殊在于,至少还是个区间! 二分左右端点。 负环记录k* 阅读全文