
数论
KsCla
这个作者很懒,什么都没留下…
展开
-
洛谷P3768:简单的数学题 (杜教筛)
题目传送门:https://www.luogu.org/problem/show?pid=3768题目分析:我们来看一下,原先题目要我们求: ∑i=1n∑j=1nijgcd(i,j)\sum_{i=1}^{n} \sum_{j=1}^{n} ijgcd(i,j) 我们变形一下,将j只枚举到i。则原式转化成: 2∑i=1ni∑j=1ijgcd(i,j)−∑i=1ni32 \sum_{原创 2017-05-26 14:57:31 · 1431 阅读 · 0 评论 -
BZOJ1004:[HNOI2008]Cards (Burnside引理+DP+Exgcd)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1004题目分析:最近我总是在省选题中找题目做,结果遇到各种奇奇怪怪的坑。这题的题面告诉我们,如果某个状态可以通过一次洗牌到达另一种状态,就从这种状态向另一种状态连一条有向边,那么最终的图一定全部是双向边,并且所有的状态组成了一些团。团的个数即为答案。现在的问题是如何求出团的个数?我自己的想法原创 2017-11-22 20:55:23 · 462 阅读 · 0 评论 -
Codeforces Round #445 Div1 C:Maximum Element (组合数学+DP)
题目传送门:http://codeforces.com/contest/889/problem/C题目大意:有一个函数,传一个长度为n的数组a进去,并设计一个参数k,它会用以下方式帮你找最大值:从左往右扫a,并记录当前最大值。如果变更完当前最大值之后,再扫连续的k个元素,当前最大值都没有变(或者扫完了a),它就会直接返回当前最大值。现在给定n,k,你要输出有多少个1~n的排列a,会使得这个函数不返回原创 2017-12-11 22:21:24 · 415 阅读 · 0 评论 -
Codeforces 809E:Surprise me! (莫比乌斯反演+虚树)
题目传送门:http://codeforces.com/contest/809/problem/E题目分析:一道套路到极点的题目。公式推导直接见https://blog.sengxian.com/solutions/cf-809e,我懒得打了QAQ。最后推出:ans=∑T=1n∑d|Tdμ(Td)ϕ(d)∑d|ai∑d|ajϕ(ai)ϕ(aj)dis(i,j)ans=∑T=1n...原创 2018-03-07 21:11:35 · 619 阅读 · 0 评论 -
BZOJ5093:图的价值 (数论+NTT)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=5093题目分析:这是一道很喵的题,让我学会了第二类stirling数的一种新姿势。还记得我一月初去HN集训的时候老师讲过这题,不过那个时候我对这方面还不太熟悉,今天CSHwang提醒我我才把这坑填了。首先单独考虑每个点对最终答案的贡献。假设某个点的度数为d,那么它向其它n-1个...原创 2018-02-18 02:08:27 · 925 阅读 · 0 评论 -
BZOJ1951:[Sdoi2010]古代猪文 (扩展欧拉定理+Lucas定理+CRT)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1951题目分析:又是一道把几个数论算法强行拼起来的题目。题面要求的其实是g∑d|nCdnmodpg∑d|nCndmodpg^{\sum_{d|n}C_n^d}\mod p。用扩展欧拉定理可以变成g(∑d|nCdn)modϕ(p)+ϕ(p)modpg(∑d|nCnd)modϕ(p...原创 2018-03-15 09:19:55 · 316 阅读 · 0 评论 -
BZOJ3162:独钓寒江雪 (Hash判断树同构+树形DP+组合数学)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3162题目分析:一道很厉害的题,让我知道原来Hash还可以判断两棵树的形态是否相同。这题的具体做法还是看VFK的题解吧,我表示只能orz。用简单的话概括一下题解的内容就是:1.定义重心为树的直径的中点。如果树的直径长度为偶数,就在最中间的边上加一个虚点作为重心。 2.以重...原创 2018-03-16 11:16:22 · 496 阅读 · 0 评论 -
洛谷P4260:[Code+#3]博弈论与概率统计 (组合数学+莫队/分块)
题目传送门:https://www.luogu.org/problemnew/show/P4260题目分析:一道很好的题,既不是无脑的算法套路题,也不是单纯的推式子题。因此我讲得详细一些。比赛的时候我因为时间问题没有看这题,后来补了题面,花了一节数学课自己推出了一些东西(O(Tn)O(Tn)O(Tn)的做法)。后来看了官方题解,发现了一种关于组合数前缀和的新姿势QAQ。首先,题面给你的...原创 2018-03-09 19:44:59 · 903 阅读 · 0 评论 -
BZOJ3512:DZY Loves Math IV (杜教筛)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3512题目分析:很早就听说这是道神仙题,所以一直没有做。后来洛谷的某场比赛,T1和这题很像,然而我推了1h也化不开ϕ(ij)ϕ(ij)\phi(ij)(也许我智商太低),最后在该题取得了0分的好成绩QAQ。于是我决定过来学一学关于ϕϕ\phi的一些新姿势。首先有以下四条式子成立...原创 2018-03-03 10:17:49 · 719 阅读 · 0 评论 -
BZOJ4407:于神之怒加强版 (数论+线性筛)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4407题目分析:又是一道老年人数论题。不妨令n≤mn≤mn\leq m。经过一番推导倒,可以得到这个:ans=∑D=1n⌊nD⌋⌊mD⌋∑d|Ddkμ(Dd)ans=∑D=1n⌊nD⌋⌊mD⌋∑d|Ddkμ(Dd)ans=\sum_{D=1}^n\lfloor\frac{n...原创 2018-03-11 22:01:27 · 353 阅读 · 0 评论 -
POJ3696:The Luckiest number (欧拉定理)
题目传送门:http://poj.org/problem?id=3696题目大意:给出一个数LLL,请求出一个最小的数ans,使得ans全由8组成(即ans=88888……8),并且是LLL的倍数。要求输出ans的位数。多组数据。1≤L≤2∗1091≤L≤2∗1091\leq L\leq 2*10^9。题目分析:一道很神的题,要是思路错了就走远了。我一开始的想法是把8提出来,然...原创 2018-03-19 18:49:32 · 483 阅读 · 0 评论 -
BZOJ2159:Crash 的文明世界 (第二类stirling数+组合数学+树形DP)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2159题目分析:先说一下部分分怎么拿。20%20%20\%:直接以每个点为根DFS一遍,求出其它点的深度。预处理1k1k1^k~nknkn^k统计答案。时间复杂度O(n2+nk)O(n2+nk)O(n^2+nk)。50%50%50\%:令S[node][d]=∑u∈node...原创 2018-03-20 08:20:58 · 443 阅读 · 0 评论 -
CodeChef Counting D-sets (容斥原理+组合数学)
vjudge题面传送门:https://cn.vjudge.net/problem/CodeChef-CNTDSETS(PS:vjudge上中文版的题面有误,一个点集的直径应该定义为其中点对的切比雪夫距离的最大值。切比雪夫距离是两个点各个维度之差的绝对值取max。这一点看回英文版题面就能知道)题目分析:一道思维难度较大,代码量极少的题。直径=d的点集数 = 直径<=d的点集数...原创 2018-03-29 21:40:41 · 676 阅读 · 0 评论 -
洛谷P2312:解方程 (Hash+数学)
题目传送门:https://www.luogu.org/problem/show?pid=2312题目分析:一道脑洞很大的题……这要是在考场上我绝对暴力高精度水50走人。 要判断一个很算式的结果是不是0,而且算式中的数字都很大,我们可以将算式中的数字模几个大质数,看算出来的结果是否都为0。于是这题我们将每个系数模几个大质数,再暴力将[1,m]中的数代入检验,就有70分了。 至于100分……要用到原创 2017-10-18 16:37:22 · 515 阅读 · 0 评论 -
洛谷P1445:没占到1444的愤怒 (数学推导+线性筛)
题目传送门:https://www.luogu.org/problem/show?pid=1445题目分析:这题我先自己推导了一遍,用了一种很麻烦的推法,后来发现题解的做法比我的快好多。我自己的推导: 求:1x+1y=1n!\frac{1}{x}+\frac{1}{y}=\frac{1}{n!} xyx+y=n!\frac{xy}{x+y}=n! 不妨令k=gcd(x,y),x=ak,y=bk原创 2017-09-19 13:27:13 · 839 阅读 · 0 评论 -
51Nod1222:最小公倍数计数 (莫比乌斯反演)
题目传送门:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1222题目分析:这题又是skywalkert博客里的练习题,我一开始自己手推原式子推出了一个O(nlog2(n))O(nlog^2(n))的东西(没有用μ\mu),完全没办法化简,还是要跑去看题解,后来发现别人的思路和我一开始就不是一个方向的……也许我数论还是太弱原创 2017-06-05 11:49:20 · 560 阅读 · 0 评论 -
SPOJ DIVCNT2(莫比乌斯反演+杜教筛)
题目传送门:http://www.spoj.com/problems/DIVCNT2/题目分析: 千古神题,这题想了我两天也没想出来…… 好吧,其实这题并没有用杜教筛,它并没有使用记忆化递归,也没有用狄利克雷卷积,只不过它的时间复杂度证明和杜教筛类似,也是O(n23)O(n^{\frac{2}{3}})(虽然我还是不知道具体是怎么证的)。该怎么说呢?至少加深了对积性函数前缀和的理解吧。 回到正原创 2017-06-01 22:02:25 · 1751 阅读 · 0 评论 -
51nod1584:加权约数和 (莫比乌斯反演)
题目传送门:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1584题目分析:这题应该算是[SDOI2015]约数个数和的加强版吧,如果还没有做过这道题的同学可以先想一想这题。至于它的解法你们可以自行百度(或看看我写的题解) 好吧,回到这题。 我们要搞清楚一个东西:σ1(ij)σ1(ij)\sigma_1(ij...原创 2017-06-11 20:41:29 · 885 阅读 · 3 评论 -
洛谷P3327:[SDOI2015]约数个数和 (莫比乌斯反演)
题目传送门:https://www.luogu.org/problem/show?pid=3327题目分析:这题我又没有自己想出来…… 主要是本题要用到一个很神的结论: d(ij)=∑x|i∑y|j[(x,y)=1]d(ij)=\sum_{x|i}\sum_{y|j}[(x,y)=1] 这个是怎么推出来的呢? 我们考虑质数p对d(ij)的贡献,假设i的质因数分解中有k个p,j的质因数分解中q原创 2017-06-09 21:06:13 · 750 阅读 · 2 评论 -
洛谷P3172:[CQOI2015]选数 (DP+数论)
题目传送门:https://www.luogu.org/problem/show?pid=3172题目分析:我也不想说什么了,把一道简单的题想复杂了。一开始想错思路,以为提取出k和k平方的个数,两次组合数搞容斥。结果发现错的离谱(2k,3k等情况没有讨论)。然后想莫比乌斯反演(好像时间过不去呀),而且我也不知道怎么log(n)求组合数(因为不能预处理阶乘到n),还上网看了个log(n)求阶乘,原创 2017-06-12 14:09:31 · 456 阅读 · 0 评论 -
ZOJ3881:From the ABC conjecture(莫比乌斯反演)
题目传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3881题目分析:又是一道神题。别的算法都是做一题少一题,只有数论是做一题多一题的……至于推导过程的话已经有神犇在网上放了很优秀的题解,我只是过来总结一下思路要点+贴代码而已。 要点:本题要求的是一个很奇怪的函数f(n)=rad(n)ϕ(nrad(n))f(n)=r原创 2017-06-24 10:32:25 · 771 阅读 · 1 评论 -
2017"百度之星"程序设计大赛-资格赛 比赛总结
感觉最近任务还是挺重的,既要参加百度之星的比赛做题改题,又要做CDQ分治的练习题,还要参加学校的NOIP模拟赛写总结。效率还是要更高才好(话说BC的比赛我好像已经很久没动过了QAQ)。T1:度度熊保护村庄(hdu6080)题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6080题目分析:这题的思路很巧妙啊。一开始以为是求凸包或半平面交之类的,由于没做过原创 2017-08-15 08:55:41 · 1041 阅读 · 0 评论 -
BZOJ4767:两双手 (组合数学+DP+容斥原理)
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=4767题目分析:一开始看题目名还以为是两只手,后来感觉有些不对劲……题面保证了给出的两个向量叉积为0,就是说它们不平行。不平行的两个向量可以作为一组基底,这样原先平面上的所有点就获得了一个新坐标。于是问题变成了:从(0,0)走到(n,m),中间不能经过指定的k个点,求方案数。...原创 2018-03-29 16:28:10 · 1008 阅读 · 0 评论