模拟测试20190816

你说都退役了我还写什么博客今天考试发挥并不是很好啊

T1用20min切掉,然而打暴力+对拍码到了8:00(什么蒟蒻码力啊)

T2打了个思路简单但是实现吃零食的tarjan(尽管考后发现这个思路就是扯淡),调到了10:00终于过了样例就交了,Wa10

T3还剩30min,调整了一下心态,推了10min无果后码了20pts的暴力

总分100+10+20=130pts,rank16,蒟蒻标配分数+排名

继续努力

T1:mine

傻逼dp,f[i][j]表示到第i位状态为j的方案数

T2:water

上来以为是水题

后来发现事情没有那么简单

然后非常自信的开始打tarjan和他的好朋友拓扑

得到了10分的好成绩

我们研究一下题目,发现每个点最后的高度就是从他走到边界的路上最大值的最小值

求最小生成树就好了

T3:gcd

f(i)表示 gcd 为 i 的数对个数,g(i)表示 gcd 为 i 的倍数的数对个数

则可以得到 f (i) = ∑ d μ(d)g(d) ,(考反演就是没脸,当然这不妨碍skyh凭借脸大强势AC)

记 s(i)表示 i 的倍数的个数,那么g(i)=s(i)*(s(i)-1)/2

我们发现删掉(增加)一个数x时对答案的贡献可以O(sqrt(x))得出

只要记录s(i)和是否被选,提前筛出莫比乌斯函数就好了

 

posted @ 2019-08-16 21:28  mikufun♘  阅读(114)  评论(2编辑  收藏  举报