题目链接:https://cn.vjudge.net/contest/270608#problem/B

题目大意:题目中说,就是对欧拉函数的重新定义的一种函数的求和.

证明方法:

AC代码:

#include<iostream>
#include<stack>
#include<cstring>
#include<iomanip>
#include<cmath>
#include<queue>
#include<algorithm>
#include<stdio.h>
#include<string>
#include<map>
using namespace std;
# define ll long long
# define inf 0x3f3f3f3f
const int maxn = 1000000+100;
ll n,m,mod;
ll prime[maxn],phi[maxn],a[maxn];
int mu[maxn];
ll inv[maxn];
ll len;
bool flag[maxn];
void init()
{
phi[1]=1;
mu[1]=1;
int cnt=0;
for(int i=2; i<maxn; i++)
{
if(!flag[i])
{
prime[cnt++]=i;
phi[i]=i-1;
mu[i]=-1;
}
for(int j=0; j<cnt; j++)
{
ll temp=i*prime[j];
if(temp>maxn)break;
flag[temp]=1;
if(i%prime[j]==0)
{
phi[temp]=phi[i]*prime[j];
mu[temp]=0;
break;
}
else
{
phi[temp]=phi[i]*(prime[j]-1);
}
mu[temp]=-mu[i];
}
}
}
void gao()
{
inv[1]=1;
for(int i=2; i<=len; i++)
{
inv[i]=inv[mod%i]*(mod-mod/i)%mod;
}
for(int i=1; i<=len; i++)
{
a[i]=i*inv[phi[i]]%mod;
}
}
int main()
{
int T;
scanf("%d",&T);
init();
while(T--)
{
scanf("%lld %lld %lld",&m,&n,&mod);
len=min(n,m);
gao();
ll ans=0;
for(int i=1; i<=len; i++)
{
int t1=m/i,t2=n/i;
int v=min(t1,t2);
ll g=0;
for(int j=1; j<=v; j++)
{
g=(g+mu[j]*(t1/j)%mod*(t2/j)+mod)%mod;
}
ans=(ans+a[i]*g)%mod;
}
printf("%lld\n",ans);
}
return 0;
}

B - GuGuFishtion(莫比乌斯 欧拉函数 预处理mu函数的欧拉函数的模板)的更多相关文章

  1. 欧拉函数O(sqrt(n))与欧拉线性筛素数O(n)总结

    欧拉函数: 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目. POJ 2407.Relatives-欧拉函数 代码O(sqrt(n)): ll euler(ll n){ ll ans=n; ...

  2. 欧拉筛(线性筛) & 洛谷 P3383 【模板】线性筛素数

    嗯.... 埃氏筛和欧拉筛的思想都是相似的: 如果一个数是素数,那么它的所有倍数都不是素数.... 这里主要介绍一下欧拉筛的思路:(欧拉筛的复杂度大约在O(n)左右... 定义一个prime数组,这个 ...

  3. JS的解析与执行过程—函数预处理

    声明:之所以分为全局预处理与函数预处理,只是为了理解方便,其实在实际运行中二者是不分先后的. 函数预处理阶段与全局预处理的差别: 函数每调用一次,就会产生一个LexicalEnviroment对象,在 ...

  4. Entity Framework 6 Recipes 2nd Edition(11-4)译 -> 在”模型定义”函数里调用另一个”模型定义”函数

    11-4.在”模型定义”函数里调用另一个”模型定义”函数 问题 想要用一个”模型定义”函数去实现另一个”模型定义”函数 解决方案 假设我们已有一个公司合伙人关系连同它们的结构模型,如Figure 11 ...

  5. Sql Server函数全解(四)日期和时间函数

      日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同 ...

  6. python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

    1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  7. Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt

    PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...

  8. js判断函数是否存在、判断是否为函数

    代码: <script type="text/javascript"> //判断是否为函数 try { if(typeof FunName === "func ...

  9. 不可或缺 Windows Native (16) - C++: 函数重载, 缺省参数, 内联函数, 函数模板

    [源码下载] 不可或缺 Windows Native (16) - C++: 函数重载, 缺省参数, 内联函数, 函数模板 作者:webabcd 介绍不可或缺 Windows Native 之 C++ ...

随机推荐

  1. windows下的coreseek安装及PHP调用入门

    转载:http://zhan.renren.com/longmensoft?gid=3602888498043096197&checked=true 把我的运行环境简单说一下:windows ...

  2. 更新 pip & setuptools

    python -m pip install -U pip setuptools

  3. spring cloud & dubbo

    区别 来源(背景): Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点. Spring Cloud,从命名我们就可以知道,它是Spring Source的产物,Spr ...

  4. Debugging QML Applications

    Debugging QML Applications Console API Log console.log, console.debug, console.info, console.warn an ...

  5. 如何用Qt Python创建简单的桌面条形码应用

    Qt for Python可以快速跨平台的GUI应用.这篇文章分享下如何结合Dynamsoft Barcode Reader SDK来创建一个简单的读码应用. 安装Qt for Python 官方站点 ...

  6. 【NuGet】使用NuGet打包并发布至ProGet过程 (打包再次详解)【下篇】

    一.前言 上篇[1]主要介绍了利用csproj文件使用NuGet打包至ProGet的过程,并附上了用于在Jenkins上运行的python脚本.本篇的主要内容分为以下几点: 1. Nuspec与Nup ...

  7. P3932 浮游大陆的68号岛 【线段树】

    P3932 浮游大陆的68号岛 有一天小妖精们又在做游戏.这个游戏是这样的. 妖精仓库的储物点可以看做在一个数轴上.每一个储物点会有一些东西,同时他们之间存在距离. 每次他们会选出一个小妖精,然后剩下 ...

  8. SVN跨服务器自动更新--实现文件分发

    目标:SVN版本库提交,服务器中的工作拷贝能自动update. 实现方法:subversion, curl,php脚本实现,并且入mysql库来进行管理.改hosts文件来进行访问!提交触发钩子脚本时 ...

  9. vmware中ubuntu虚拟机扩容

    https://blog.csdn.net/ldzm_edu/article/details/78893721

  10. Hdu5181 numbers

    numbers Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 196608/196608 K (Java/Others)Total ...