zoukankan      html  css  js  c++  java
  • P3768 简单的数学题(杜教筛)

    P3768 简单的数学题

    题目描述

    输入一个整数 (n) 和一个整数 (p),你需要求出:

    [largeleft(sum_{i=1}^nsum_{j=1}^n ij gcd(i,j) ight) mod p ]

    其中 (gcd(a,b)) 表示 (a)(b) 的最大公约数。

    数据范围

    (n leq 10^{10}, 5 imes 10^8 leq p leq 1.1 imes 10^9)(p) 为质数。

    解题思路

    先推一波式子

    [large sum_{i=1}^nsum_{j=1}^n ij gcd(i,j)\ large = sum_{d=1}^ndsum_{i=1}^{frac nd}sum_{j=1}^{frac nd} ijd^2 [gcd(i,j)=1]\ large = sum_{d=1}^nd^3sum_{k=1}^{frac nd}mu(k)k^2sum_{i=1}^{frac n{dk}}sum_{j=1}^{frac n{dk}} ij\ large = sum_{T=1}^nT^2sum_{k|T}mu(k)frac Tksum_{i=1}^{frac n{T}}sum_{j=1}^{frac n{T}} ij\ large = sum_{T=1}^nT^2varphi(T)sum_{i=1}^{frac n{T}}sum_{j=1}^{frac n{T}} ij\ large = sum_{T=1}^nSum(frac nT)^2(T^2varphi(T))\ ]

    后面的可以杜教筛,前面的整除分块即可

  • 相关阅读:
    3D文字菜单变换
    妙味课堂作业20160113(优化版)
    pop up layer loading
    妙味课堂作业20160113
    妙味课堂20160112js实例仿新浪菜单
    js面向对象初探
    sea.js demo
    注册ASP.NET
    JDK1.6 环境配置
    JDK1.7环境配置
  • 原文地址:https://www.cnblogs.com/Hs-black/p/13095117.html
Copyright © 2011-2022 走看看