摘要: 题解 这个故事告诉们数论函数不要往分式上跑,你推不出来 好久没推式子了这么明显的转化我都忘了= = 首先$A(n) = \frac{1}{n} \sum_{i = 1}^{n} \frac{i n}{gcd(i,n)}$ 然后显然可以把n消掉 $A(n) = \sum_{i = 1}^{n} \fr 阅读全文
posted @ 2018-06-08 22:36 sigongzi 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题解 话说LOJ说我今天宜学数论= =看到小迪学了杜教筛去蹭了一波小迪做的题 标解的杜教筛的函数不懂啊,怎么推的毫无思路= = 所以写了个复杂度稍微高一点的?? 首先,我们发现f是个积性函数,那么我们就有…… $\prod_{i = 1}^{k}f(p_{i}^{a_{i}})$ 我们发现,对于每个 阅读全文
posted @ 2018-06-08 22:15 sigongzi 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 题解 写完上一道就开始写这个,大体上就是代码改了改而已= = 好吧,再推一下式子! $\sum_{i = 1}^{n}i = \sum_{i = 1}^{n}\sum_{d | i}\phi(d) = \sum_{i = 1}^{n}\sum_{d = 1}^{\lfloor \frac{n}{i} 阅读全文
posted @ 2018-06-08 17:39 sigongzi 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题解 求积性函数的前缀和?杜教筛! 这不给一发杜教筛入门必备之博客= = https://blog.csdn.net/skywalkert/article/details/50500009 好了,然后我试着在这里推导一下式子 我们利用一个卷积就是 $\mu I = e$ 写成熟悉的形式就是 $[n 阅读全文
posted @ 2018-06-08 17:03 sigongzi 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 题解 跟随小迪学姐的步伐,学习一下数论 小迪学姐太巨了! 这道题的式子很好推嘛 $\sum_{i = 1}^{n} \sum_{j = 1}^{n} \sum_{d|\phi(i),\phi(j)} \phi(d) [gcd(\frac{\phi(i)}{d},\frac{\phi(j)}{d}) 阅读全文
posted @ 2018-06-08 15:30 sigongzi 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题解 考虑到状态数比较复杂,其实我们需要轮廓线dp…… 我们设置$f[x][y][S][h][k]$为考虑到第(x,y)个格子,S是轮廓线上的匹配状态,是二进制,如果一位是1表示这一位匹配第一行匹配到第一行的末尾了,然后h是前一个格子匹配到第一行第h列,k是前一个格子匹配到第二行第k列,转移数组用k 阅读全文
posted @ 2018-06-08 15:22 sigongzi 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题解 我们发现第一种操作肯定不可取,每个节点里它最近的点是它最长出现过的后缀,发现这就是AC自动机的fail节点,根据fail的关系这会是一棵树,而一个单词的前一个序号最大的后缀必定是它的父亲 然后我们考虑怎么获得最小值,x是肯定要加上的,我们让每次减掉的y最小 一个错误的想法:按照儿子个数分类,建 阅读全文
posted @ 2018-06-08 15:21 sigongzi 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题解 最大异或和,明显是个线性基 然而还有那么多路径……那就树分治,反正点数看起来很少,就是为了让人乘上一个60的常数嘛 把一个树的点分树记录下来,然后看看询问的两个点彼此相同的最后一个父亲是谁,把这个询问挂在这个点上,计算就暴力搜索这棵树里每一个节点到重心的线性基就行了,最后再用60的常数把两个线 阅读全文
posted @ 2018-06-08 15:19 sigongzi 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题解 这道题教会我很多东西,虽然它是个傻逼三分 1.long double的运算常数是巨大的 2.三分之前的界要算对!一定要算准,不要想一个直接写上! 3.三分100次也就只能把精度往里推20多位,可你需要的精度是最大数值加小数位,大概是12位,而你三分的界最小也得卡到1e4和1e 4(虽然,用1e 阅读全文
posted @ 2018-06-08 15:17 sigongzi 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题解 这个题好妙啊 首先我们发现,如果我们可以暴力,就是把相同的元素拿并查集合起来,最后统计集合个数$cnt$ 答案是$9\ 10^{cnt 1}$ 然而我们做不到= = 我们可以用倍增的思想,类似st表,一次合并两个长度为$2^l$的区间 然后再从区间长度最长往下下放,从长到短遍历,就下放一层,之 阅读全文
posted @ 2018-06-08 15:17 sigongzi 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题解 做了一下SCOI2015,于是决定搬运SCOI2016= v = 如果没有加法,我们可以向左向右节点查找 每个总权值是2^18 1,然后左右分,那么每次是一个完整的节点 如果有了加法,那么我们如果希望有数满足某一位是1或者0,是一段取值的区间,我们要保证这个区间的左右端点减少x后这个区间里还有 阅读全文
posted @ 2018-06-08 15:15 sigongzi 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题解 一道想法很简单的计算几何(由于我半平面交总是写不对,我理所当然的怀疑半平面交错了,事实上是我直线建错了) 首先我们对于两个凸包上的点设为$(x_0,y_0)$和$(x_1,y_1)$(逆时针) 设这个点为(x,y)我们用叉积求一下面积 可以得到 $(x_0 x)(y_1 y) (x_1 x)( 阅读全文
posted @ 2018-06-08 14:22 sigongzi 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题解 考虑朴素的做法,断环为链,复制2M个,找到一个位置i,f(i)是这个位置之前开始的线段,结束位置最远的位置在哪 然后对于每一个人,从自己线段的起点往下跳,跳到起点+M或以后的步数就是答案 我们发现这其实是最后一个点为根构建成的一棵树,很显然的,我们答案只可能是最少的用人数量+1或最少的用人数量 阅读全文
posted @ 2018-06-08 10:44 sigongzi 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题解 又是美好的一天,我今天的小目标是LOJ刷题数名次前进两名(虽然巨佬们都是BZOJ千题啊这样的 define MAXN 50005 // define ivorysi define enter putchar('\n') define space putchar(' ') define fi f 阅读全文
posted @ 2018-06-08 07:32 sigongzi 阅读(353) 评论(0) 推荐(0) 编辑