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))\ ]

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

  • 相关阅读:
    Java基础-3y
    对线面试官面试系列-3y
    从零单排学Redis【青铜】
    mock官方文档
    route路由组件传递参数
    axios拦截器与vue代理设置
    Sass使用方法
    Less使用方法
    Vue-cli
    Vue-组件注册
  • 原文地址:https://www.cnblogs.com/Hs-black/p/13095117.html
Copyright © 2011-2022 走看看