数论
鶸鶸
这个作者很懒,什么都没留下…
展开
-
牛客网 14 n的约数(数论)
题意:中文,就是求1~n中约数最多的数思路:根据唯一分解定理,我们可以知道一个数n = a1^p1*a2^p2...的约数个数为 (1+p1) * (1+p2)....,那么1~n中约数最多的数我们应该怎么求呢?根据公式我们可以知道我们让p1,p2,,,,pn最大就好了,那么我们现在可以枚举一个素数,枚举到他的次方大于n的时候,我们回溯开始乘下一个素数之后我们记录一下当前枚举素数的指数的最大值就好...原创 2018-03-31 10:52:36 · 248 阅读 · 0 评论 -
第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 F 等式(数学)
题意:中文题思路:给你一个1/x + 1/y = 1/n ,两边同时乘上xyn之后得到式子 nx+ny = xy ,之后通过(自我感觉)非常非常非常敏锐的数学思想,两边同时加上n^2,得到(n-x)*(n-y) = n^2。由此可以看出我们现在要求出的是n^2的所有因子,因为n有1e9所以直接求因子会超时,这个时候我们引入一个非常吊的公式,所有数都可以化为几个质数次方和相加p = a1^x1+a...原创 2018-03-26 18:33:38 · 187 阅读 · 0 评论 -
HihoCoder - 1701 挑选子集 (思路)
题意:给你一组序列,让你从这中间选取m个数,使他们的差都是k的倍数的方案数是多少思路:点击打开链接和这道cf的题差不多都是一个思路的,讲一下把,就是 A%k == nB%k == n 可以推出 (A-B) % K ==0 自己写几个式子看看, 其实这个式子我是会证明的,不过这里太小写不下嗯,就是这样,那么方法1: 我们统计余数,余数相同的数量(ans)大于m的我们从中选择m个那就是组合...原创 2018-04-05 17:25:13 · 224 阅读 · 0 评论 -
Educational Codeforces Round 47 (Rated for Div. 2) D (绝世傻逼题)
题意 给你一个n和m,表示你要建一个由n个点和m条边组成的双向图,其中相连的一条边上的两个顶点他们的gcd必须为1。 思路 就是暴力,为什么暴力不超时,emm大佬说可以用欧拉去估,但是我不会。。。 代码 #include <bits/stdc++.h> using namespace std; const int maxn = 1e5+10; vector<int&...原创 2018-07-16 11:20:35 · 259 阅读 · 0 评论