SPOJ GCDEX (数论)】的更多相关文章

转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 题意:求sigma (gcd (i , j))  1 <= i < j <= n 和POJ 2480类似,如果枚举j,求的话,还是会TLE的... 考虑sigma(gcd (i , n)) = sigma (d * phi[n / d]) d | n. 做法同样是先预处理出phi,然后枚举gcd = d. O(n)预处理,O(1)查询 #i…
详细的题解见这里. 图片转自上面的博客 假设我们已经推导出来x在处取得最小值,并且注意到这个点是位于两个整点之间的,所以从这两个整数往左右两边枚举b就能找到b+c的最小值. 其实只用往一边枚举就够了,由于对称性,我们不妨假设b ≤ c,那么只要让b从2a开始递减枚举即可. #include <iostream> using namespace std; long long a, i; ;)%(i-a))i--;cout<<(i*i+)/(i-a)<<endl;};} 代…
题解: 首先我们设gcd(i,j)=k 所以我们就要求对于所有k的方案总数 可以线性帅选欧拉函数 然后算法一:枚举k,O(NT) 算法二:考虑到我们只要n/k的整数部分 容易证明是sqrt(n)级别的 所以就可以在O(Tsqrt(n))的时间内解决 但是要考虑卡常数 代码: #include<bits/stdc++.h> typedef long long ll; ; ll ans,res[N],g[N],s[N]; ,n,a[N],b[N],tmp; int main() { freopen…
题意:求出\(n\)拆分成若干个数使其连乘最大的值 本题是之江学院网络赛的原题,计算规模大一点,看到EMAXX推荐就做了 忘了大一那会是怎么用均值不等式推出结果的(还给老师系列) 结论倒还记得:贪心分解3,不够就用2凑 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #…
tips : 积性函数 F (n) = Π F (piai ) 若F (n), G (n)是积性函数则 F (n) * G (n) Σd | n F (n) 是积性函数 n = Σd | n  φ (d) 1 = Σd | n  μ (d) Σgcd (i, n) = 1 i = n * φ (n) / 2 Problem1 F (n) = Σ1<= i <= n gcd(i, n), n <= 1000000 Sol 枚举结果 F (n) = Σd | n d * Σgcd (i, n…
2226: [Spoj 5971] LCMSum Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 578  Solved: 259[Submit][Status] Description Given n, calculate the sum LCM(1,n) + LCM(2,n) + .. + LCM(n,n), where LCM(i,n) denotes the Least Common Multiple of the integers i a…
SPOJ DIVCNT2 - Counting Divisors (square) 题意:求 \[ \sum_{i=1}^n\sigma_0(i^2) \] 好棒啊! 带着平方没法做,考虑用其他函数表示\(\sigma_0(i^2)\),把平方消去. \(\sigma_0(n) = (1*1)(n) = \sum_{d\mid n}1\) 我们考虑那些\(n^2\)有而\(n\)没有的因子,\(n=\prod p_i^{a_i}\),那么这些因子里一定有\(p_i^c:c>a_i\). 对于因子…
BZOJ 2226 [Spoj 5971] LCMSum 这道题和上一道题十分类似. \[\begin{align*} \sum_{i = 1}^{n}\operatorname{LCM}(i, n) &= \sum_{i = 1}^{n}\frac{i \times n}{\operatorname{gcd}(i, n)}\\ &= n \times \sum_{i = 1}^{n}\frac{i}{\operatorname{gcd}(i, n)} \end{align*}\] 设\(…
Funny scales Problem's Link ---------------------------------------------------------------------------- Mean: 给定两个数n和x,有一个天平,初始时左盘为x,你需要从以下集合中选一些数字来放到两个盘中,使得两个盘相等(note:每个数字只能取一次). analyse: 即: 将X化为3进制: 但是题目说每个3^i必须为1,所以我们需要将X表示成的等式的每一项的系数变为1,这就是本题的关键…
题意 :给你n个数,问你是否存在一个多项式(最多三次方)满足f(i)= xi. 思路:讲一个神奇的思路: x3 - (x - 1)3 = 3x2 - 3x + 1 x2 - (x - 1)2 = 2x + 1 x - (x - 1) = 1 1 - 1 = 0 看了上面这么多,其实已经可以发现一件事情了:如果相邻常数减一次那么就是0:相邻一次式减一次降为常数,减两次为0:相邻二次式减一次降为一次式,减两次降为常数,减三次.... 由此我们可以知道,如果存在一个多项式(最多三次方)满足f(i)=…