B - GuGuFishtion(莫比乌斯 欧拉函数 预处理mu函数的欧拉函数的模板)
题目链接: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函数的欧拉函数的模板)的更多相关文章
- 欧拉函数O(sqrt(n))与欧拉线性筛素数O(n)总结
欧拉函数: 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目. POJ 2407.Relatives-欧拉函数 代码O(sqrt(n)): ll euler(ll n){ ll ans=n; ...
- 欧拉筛(线性筛) & 洛谷 P3383 【模板】线性筛素数
嗯.... 埃氏筛和欧拉筛的思想都是相似的: 如果一个数是素数,那么它的所有倍数都不是素数.... 这里主要介绍一下欧拉筛的思路:(欧拉筛的复杂度大约在O(n)左右... 定义一个prime数组,这个 ...
- JS的解析与执行过程—函数预处理
声明:之所以分为全局预处理与函数预处理,只是为了理解方便,其实在实际运行中二者是不分先后的. 函数预处理阶段与全局预处理的差别: 函数每调用一次,就会产生一个LexicalEnviroment对象,在 ...
- Entity Framework 6 Recipes 2nd Edition(11-4)译 -> 在”模型定义”函数里调用另一个”模型定义”函数
11-4.在”模型定义”函数里调用另一个”模型定义”函数 问题 想要用一个”模型定义”函数去实现另一个”模型定义”函数 解决方案 假设我们已有一个公司合伙人关系连同它们的结构模型,如Figure 11 ...
- Sql Server函数全解(四)日期和时间函数
日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同 ...
- python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...
- Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...
- js判断函数是否存在、判断是否为函数
代码: <script type="text/javascript"> //判断是否为函数 try { if(typeof FunName === "func ...
- 不可或缺 Windows Native (16) - C++: 函数重载, 缺省参数, 内联函数, 函数模板
[源码下载] 不可或缺 Windows Native (16) - C++: 函数重载, 缺省参数, 内联函数, 函数模板 作者:webabcd 介绍不可或缺 Windows Native 之 C++ ...
随机推荐
- java 基础 --File
1, 创建文件 File file = new File(path); file.createNewFile(); //如果路径不存在,会抛异常 file.mkdir();//如果路径不存在,返回fa ...
- Spring MVC @RequestParam @RequestHeader @CookieValue用法
摘要: package com.hust.springmvc1; import org.springframework.stereotype.Controller; import org.spring ...
- Netty系列学习
Netty系列之Netty高性能之道 Netty系列之Netty线程模型 Netty系列之Netty 服务端创建 Netty系列之Netty编解码框架分析 Netty系列之Netty百万级推送服务设计 ...
- 【bzoj4011】[HNOI2015]落忆枫音 容斥原理+拓扑排序+dp
题目描述 给你一张 $n$ 个点 $m$ 条边的DAG,$1$ 号节点没有入边.再向这个DAG中加入边 $x\to y$ ,求形成的新图中以 $1$ 为根的外向树形图数目模 $10^9+7$ . 输入 ...
- DjangoORM字段参数介绍
参数介绍: 字段的参数: null: ->db是否可以为空 default: ->默认值 primary_key: ...
- 转:linux命令: tail ,head 显示文件某行内容 与sed在线编辑器
linux 如何显示一个文件的某几行(中间几行) 转:http://www.cnblogs.com/xianghang123/archive/2011/08/03/2125977.html http: ...
- [AT2557] [arc073_c] Ball Coloring
题目链接 AtCoder:https://arc073.contest.atcoder.jp/tasks/arc073_c 洛谷:https://www.luogu.org/problemnew/sh ...
- [洛谷P1642]规划
题目大意:有一棵$n(n\leqslant100)$个点的树,每个点有两个权值$a,b$,要求选择一个$m$个点的连通块$S$,最大化$\dfrac{\sum\limits_{i\in S}a_i}{ ...
- 51nod1222 最小公倍数计数 莫比乌斯反演 数学
求$\sum_{i = 1}^{n} \sum_{j = 1}^{i} [lcm(i, j) \le n]$因为这样不好求,我们改成求$\sum_{i = 1}^{n} \sum_{j = 1}^{n ...
- 如何在vi中设置tab的长度
在使用vi写python时(其实,不管用什么写python程序时,都要注意),首先要将Tab键的长度设为4,因为使用python编程时,我们是通过缩进来实现作用域的,所以要统一Tab键的长度.具体方法 ...