题目链接

luoguP3768 简单的数学题

题解



上面那个式子的最后一步,需要定理

用数学归纳法证明

\(S1=1^3=1^2\)

\(S2=1^3+2^3=9=3^2=(1+2)^2\)

\(S3=1^3+2^3+3^3=36=6^2=(1+2+3)^2\)

\(S4=1^3+2^3+3^3+4^3=100=10^2=(1+2+3+4)^2\)

\(S5=1^3+2^3+3^3+4^3+5^3=15^2=(1+2+3+4+5)^2\)

假设当\(n=k\)时,有\(Sk=1^3+2^3+...+k^3=(1+2+...+k)^2\)

则当\(n=(k+1)\)时,

\(S(k+1)=Sk+ak=(1+2+...+k)^2+(k+1)^3\)

\(=[k(k+1)/2]^2+(k+1)^3\)

\(=(k+1)^2[k^2/4+k+1]\)

\(=(k+1)^2[(k^2+4k+4)/4]\)

\(=(k+1)^2(k+2)^2/4\)

\(=[(k+1)(k+2)/2]^2\)

\(=(1+2+...+k+1)^2\)

对于前面那个杜教筛

代码


  1. #include<map>
  2. #include<cstdio>
  3. #include<algorithm>
  4. inline int read() {
  5. int x = 0,f = 1;
  6. char c = getchar();
  7. while(c < '0' || c > '9') { if(c == '-')f = -1; c = getchar(); }
  8. while(c <= '9' && c >= '0') x = x * 10 + c - '0',c = getchar();
  9. return x * f;
  10. }
  11. #define LL long long
  12. const int maxn = 10000000;
  13. LL Max = maxn;
  14. std:: map<LL,LL>M;
  15. LL Inv6,Inv2,Phi[maxn + 7], phi[maxn + 7],mod;
  16. bool isprime[maxn + 7];
  17. int prime[maxn],cnt = 0;
  18. LL fstpow(LL a,LL b) {
  19. LL ret = 1;
  20. for(;b;b >>= 1,a = a * a % mod)
  21. if(b & 1) ret = ret * a % mod;
  22. return ret;
  23. }
  24. void getphi() {
  25. phi[1] = 1;
  26. for(int i = 2;i <= Max;++ i) {
  27. if(!isprime[i]) prime[++ cnt] = i,phi[i] = (i - 1) % mod;
  28. for(int j = 1;j <= cnt && i * prime[j] <= Max;++ j) {
  29. isprime[i * prime[j]] = 1;
  30. if(i % prime[j]) phi[i * prime[j]] = 1ll * phi[i] * phi[prime[j]] % mod;
  31. else {
  32. phi[i * prime[j]] = 1ll * phi[i] * prime[j] % mod;
  33. break;
  34. }
  35. }
  36. }
  37. for(int i = 1;i <= Max;++ i) Phi[i] = 1ll * phi[i] * i % mod * i % mod;
  38. for(int i = 1;i <= Max;++ i) Phi[i] += Phi[i - 1] , Phi[i] %= mod;
  39. }
  40. //---------------------------------------------
  41. LL S1(LL r) { r %= mod;return r * (r + 1) % mod * (r + r + 1) % mod * Inv6 % mod; }
  42. LL S2(LL r) { r %= mod;return r * (r + 1) % mod * Inv2 % mod; }
  43. LL S(LL n) {
  44. if(n <= maxn) return Phi[n];
  45. if(M[n]) return M[n];
  46. LL he = S2(n) * S2(n) % mod , t;
  47. for(LL i = 2,l;i <= n;i = l + 1) {
  48. l = n / (n / i);
  49. t = ((S1(l) - S1(i - 1)) % mod + mod) % mod;
  50. he -= t * S(n / i) % mod,he %= mod;
  51. }
  52. return M[n] = (he + mod) % mod;
  53. }
  54. LL solve(LL n) {
  55. LL res = 0;
  56. for(LL i = 1,l,t ;i <= n;i = l + 1) {
  57. l = n / (n / i),t = S2(n/i);
  58. res += ((S(l) - S(i - 1) + mod) % mod * (t * t % mod)) % mod;
  59. res %= mod;
  60. }
  61. return (res + mod) % mod;
  62. }
  63. int main() {
  64. LL n;
  65. scanf("%lld%lld",&mod,&n);
  66. Max = std::min(Max,n);
  67. Inv2 = fstpow(2,mod - 2),Inv6 = fstpow(6,mod-2);
  68. getphi();
  69. printf("%lld\n",solve(n));
  70. return 0;
  71. }

luoguP3768 简单的数学题的更多相关文章

  1. luoguP3768简单的数学题

    大佬们绕道吧(或跳到错误&启发后下一根横线后) 这道题吧正解是莫比乌斯反演吧,但本人有一种独创玄妙的想法去偏分 这道题是让我们求这个对吧 \((\sum_{i=1}^n\sum_{j=1}^n ...

  2. [题解] LuoguP3768 简单的数学题

    Description 传送门 给一个整数\(n\),让你求 \[ \sum\limits_{i=1}^n \sum\limits_{j=1}^n ij\gcd(i,j) \] 对一个大质数\(p\) ...

  3. 【数学】HPU--1037 一个简单的数学题

    1037: 一个简单的数学题 [数学] 时间限制: 1 Sec 内存限制: 128 MB提交: 259 解决: 41 统计 题目描述 小明想要知道$a^b$的值,但是这个值会非常的大. 所以退而求其次 ...

  4. 【Luogu3768】简单的数学题(莫比乌斯反演,杜教筛)

    [Luogu3768]简单的数学题(莫比乌斯反演,杜教筛) 题面 洛谷 \[求\sum_{i=1}^n\sum_{j=1}^nijgcd(i,j)\] $ n<=10^9$ 题解 很明显的把\( ...

  5. 【LG3768】简单的数学题

    [LG3768]简单的数学题 题面 求 \[ (\sum_{i=1}^n\sum_{j=1}^nij\text{gcd}(i,j))\text{mod}p \] 其中\(n\leq 10^{10},5 ...

  6. 洛谷 P3768 简单的数学题 解题报告

    P3768 简单的数学题 题目描述 由于出题人懒得写背景了,题目还是简单一点好. 输入一个整数\(n\)和一个整数\(p,\)你需要求出\((\sum_{i=1}^n\sum_{j=1}^n ijgc ...

  7. loj#6229 这是一道简单的数学题

    \(\color{#0066ff}{ 题目描述 }\) 这是一道非常简单的数学题. 最近 LzyRapxLzyRapx 正在看 mathematics for computer science 这本书 ...

  8. 「洛谷P3768」简单的数学题 莫比乌斯反演+杜教筛

    题目链接 简单的数学题 题目描述 输入一个整数n和一个整数p,你需要求出 \[\sum_{i=1}^n\sum_{j=1}^n (i\cdot j\cdot gcd(i,j))\ mod\ p\]  ...

  9. P3768 【简单的数学题】

    P3768 [简单的数学题] \(Ans=\sum ^{n}_{i=1}\sum ^{n}_{j=1}ijgcd(i,j)\) \(=\sum ^{n}_{i=1}\sum ^{n}_{j=1}ij\ ...

随机推荐

  1. Spark记录-本地Spark读取Hive数据简单例子

    注意:将mysql的驱动包拷贝到spark/lib下,将hive-site.xml拷贝到项目resources下,远程调试不要使用主机名 import org.apache.spark._ impor ...

  2. IsNullOrWhiteSpace与IsNullOrEmpty

    public static boolean IsNullOrEmpty(String value) { return (value == null || value.length() == 0);} ...

  3. 流媒体技术学习笔记之(八)海康、大华IpCamera RTSP地址和格式

    海康: rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream 说明: username: 用户名 ...

  4. H5 以及 CSS3

    <!DOCTYPE html> <html> <head> <style> *{ padding:0; margin:0; } header{ disp ...

  5. Javascript Image Slider 插件注册机

    Javascript Image Slider 是个不错的轮播插件,兼容 IE 7.0+, Firefox 1.5+, Chrome 1.0+, Safari 3+, Opera 9.0+, Nets ...

  6. [整理]html5 WebApp 01

    在正式进入WebApp开发之前,有几个问题要解决: 1.我是产品策划:UI风格,功能设计,产品预期效果(如访问量等各类指标) 2.我是UI设计:图片图标制作,我该按怎样的大小来设计? 3.我是前端开发 ...

  7. AngularJs入门篇-控制器的加深理解基础篇

    下面做的是一个更新时间的效果,每一秒钟就会更新一下,视图中会显示出当前的时间   下面的这个例子中,SceondController函数将接受两个参数,既该DOM元素的$scope和$timeout. ...

  8. Linux TTY驱动--Uart_driver底层【转】

    转自:http://blog.csdn.net/sharecode/article/details/9196591 版权声明:本文为博主原创文章,未经博主允许不得转载. Linux 中将串口驱动进行了 ...

  9. android休眠唤醒驱动流程分析【转】

    转自:http://blog.csdn.net/hanmengaidudu/article/details/11777501 标准linux休眠过程: l        power managemen ...

  10. nginx安装报错:configure: error: the HTTP rewrite module requires the PCRE library

    参考:http://blog.51cto.com/williamx/958398 需要安装pcre-devel与openssl-devel yum -y install pcre-devel open ...