摘要:
解:先推一个式子,然后就是CRT了... 那个阶乘怎么求呢?主要是分母可能有0,这时我们把分母的因子p全部提出来,上下次数相减判断即可。 细节颇多......注意在快速幂开始的时候a %= MO是个好习惯。 1 #include <cstdio> 2 #include <algorithm> 3 4 阅读全文
摘要:
这可能是最让我摸不着头脑的知识点了...... 《组合数学》第7章有很多好玩的例子。 反正说着也不清楚,还是刷题好了..... CF438E 小朋友和二叉树。参考资料。 定义一个二叉树的权值为所有点权之和,每个点的点权只能在一个集合c中选择。问权值为1~m的树共有多少种。 设G(x)为数组c的生成函 阅读全文
摘要:
题意: task0,给定两棵树T1,T2,取它们公共边(两端点相同)加入一张新的图,记新图连通块个数为x,求yx。 task1,给定T1,求所有T2的task0之和。 task2,求所有T1的task1之和。 解:y = 1的时候特殊处理,就是总方案数。 task0,显然按照题意模拟即可。 task 阅读全文
摘要:
OI分数规划 首先,单纯的贪心是错误的(废话) 除了常见的二分之外还有一种调整法,不会..... 板题:POJ2976 Dropping tests 1 #include <cstdio> 2 #include <algorithm> 3 4 typedef long long LL; 5 cons 阅读全文
摘要:
变量之间的不等关系转成最短/长路求解。 若A - B <= x 则A <= B + x,此时有一条B->A边权为x的边。 一个形象的图: 不要忘了问题本身的约束条件。 求最小值->最长路 最大值->最短路 负环->无解 不连通->多解 参考资料。 例题: HDU1384 Intervals 注意有多 阅读全文
摘要:
又被这神仙题给坑爆了。 神仙题解。 一开始我把lcm变成ij/gcd然后按照常规套路去推,推到最后发现不是miu * Id而是miu · Id......这还搞鬼啊。 正解居然跟这个差不多,先转成求其中一部分的函数,然后再加和......这谁顶得住呀。 大概就是先求这个 一顿操作之后得到了phi有关 阅读全文
摘要:
题意:求 解: 最后一步转化是因为phi * I = Id,故Id * miu = phi 第二步是反演,中间省略了几步... 然后就这样A了......最终式子是个整除分块,后面用杜教筛求一下phi前缀和即可。 1 #include <cstdio> 2 #include <map> 3 4 ty 阅读全文
摘要:
给定n,k,l,r 问从[l, r]中选出n个数gcd为k的方案数。 解:稍微一想就能想到反演,F(x)就是[l, r]中x的倍数个数的n次方。 后面那个莫比乌斯函数随便怎么搞都行,当然因为这是杜教筛的题就杜教筛了。 然后写一写,交上去80分...... 然后枚举一下d是k的多少倍,我们发现F(x) 阅读全文
摘要:
解: 神奇的一批......参观yyb巨神的博客。 大致思路就是第一步枚举gcd,发现后面有个限制是gcd=1,用反演,得到的F(x)是两个等差数列求积。 然后发现有个地方我们除法的除数是乘积,于是换元枚举那个乘积。提到最前面。 稍微化一下,发现后面有个Id * miu,这个东西化成phi。 然后得 阅读全文
摘要:
题意:求miu[i*i]和phi[i*i]的前缀和。n <= 1e9 解:杜教筛。 第一问是搞笑的,答案是1。 第二问,发现phi[i*i] = phi[i] * i 这里杜教筛用的g(n) = n,h(n) = n2。 然后套路一波就没了。注意预处理的时候也要开long long 1 #inclu 阅读全文