hdu 6390 欧拉函数+容斥(莫比乌斯函数) GuGuFishtion
http://acm.hdu.edu.cn/showproblem.php?pid=6390
题意:求一个式子
题解:看题解,写代码
第一行就看不出来,后面的sigma公式也不会化简。mobius也不会
就自己写了个容斥搞一下(才能维持现在的生活)
//别人的题解https://blog.csdn.net/luyehao1/article/details/81672837
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include<ctime>
using namespace std;
const int maxn = 1e6 + ;
typedef long long ll;
ll F[maxn], phi[maxn], inv[maxn];
ll N, M, P;
void init(int n) {
for (int i = ; i <= n; ++i) phi[i] = i;
for (int i = ; i <= n; ++i) {
if (i == phi[i]) {
for (int j = i; j <= n; j += i) phi[j] = phi[j] / i * (i - );
}
}
}
void init2(void) {
inv[] = ;
for (int i = ; i <= N; ++i)
inv[i] = (P - P / i * inv[P%i] % P) % P;
for (int i = N; i; --i) {
F[i] = 1ll * (N / i)*(M / i);
// if(i == 1) cout<<F[i]<<endl;
for (int j = i + i; j <= N; j += i)
F[i] -= F [j];
}
}
int main() {
int t; cin >> t;
init(maxn-);
while (t--) {
cin >>N>>M>>P;
if (N < M)swap(N, M);
init2();
ll ans = ;
for (ll i = ; i <= N; ++i) {
ans += (ll)i*inv[phi[i]] % P*(F[i] % P) % P;
ans %= P;
}
cout << ans%P << endl;
}
}
/* */
GuGuFishtion(hdu 6390 欧拉函数+莫比乌斯函数)
hdu 6390 欧拉函数+容斥(莫比乌斯函数) GuGuFishtion的更多相关文章
- BZOJ2440(容斥+莫比乌斯函数)
题目本质: 首先有如下结论: 而通过写一写可以发现: 举例来讲,36及其倍数的数,会被1的倍数加一遍,被4的倍数扣一遍,会被9的倍数扣一遍,而为了最终计数为0,需要再加回来一遍,所以在容斥里面是正号. ...
- bzoj 2986: Non-Squarefree Numbers【容斥+莫比乌斯函数】
看到\( 10^10 \)的范围首先想到二分,然后把问题转化为判断\( [1,n] \)内有多少个是某个质数的平方和的数. 所以应该是加上是一个质数的平方的个数减去是两个质数的平方的个数加上是三个质数 ...
- 牛客寒假算法训练1 D 欧拉(容斥)
1 #include<bits/stdc++.h> using namespace std; ; typedef long long ll; int p[maxn],a[maxn]; ll ...
- HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU 6053 TrickGCD 莫比乌斯函数/容斥/筛法
题意:给出n个数$a[i]$,每个数可以变成不大于它的数,现问所有数的gcd大于1的方案数.其中$(n,a[i]<=1e5)$ 思路:鉴于a[i]不大,可以想到枚举gcd的值.考虑一个$gcd( ...
- 【二分+容斥+莫比乌斯反演】BZOJ2440 完全平方数
Description 求第k个没有完全平方因子的数,k<=1e9. Solution 这其实就是要求第k个µ[i](莫比乌斯函数)不为0的数. 然而k太大数组开不下来是吧,于是这么处理. 二分 ...
- hdu1695(莫比乌斯)或欧拉函数+容斥
题意:求1-b和1-d之内各选一个数组成数对.问最大公约数为k的数对有多少个,数对是有序的.(b,d,k<=100000) 解法1: 这个能够简化成1-b/k 和1-d/k 的互质有序数对的个数 ...
- hdu 1695 GCD(欧拉函数+容斥)
Problem Description Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD( ...
- HDU 1695 GCD 欧拉函数+容斥定理
输入a b c d k求有多少对x y 使得x在a-b区间 y在c-d区间 gcd(x, y) = k 此外a和c一定是1 由于gcd(x, y) == k 将b和d都除以k 题目转化为1到b/k 和 ...
随机推荐
- WebStorm for Mac(Web 前端开发工具)破解版安装
1.软件简介 WebStorm 是 jetbrains 公司旗下一款 JavaScript 开发工具.目前已经被广大中国 JS 开发者誉为 "Web 前端开发神器".&quo ...
- MDK-ARM输出HEX文件重命名设置
输出的可执行文件和库的名称就是在这里定义.比如我们常见输出Hex文件,其名称就是这里定义的.
- 基于Openresty+的WEB安全防护系统架构--转
随着时间的推移,我们在实践中也不断的演进我们的服务部署方案,希望WEB防护,不只是单独的云WAF来保护服务,而有其它的相关服务,对WAF进行增强加固的合理配合.我们使用Openresty+系统构建了W ...
- java实现urlencode
https://www.cnblogs.com/del88/p/6496825.html ****************************************************** ...
- LeetCode: Largest Number 解题报告 以及Comparator, CompareTo 应用
Largest Number Given a list of non negative integers, arrange them such that they form the largest n ...
- 【Unity笔记】打包安卓APK时Build Setting中的三种Build System
Internal(Default):Unity内置,仅需Android SDK支持.不能导出工程,适用于仅适用Unity开发的工程. Gradle(New):使用Gradle进行构建,需要Androi ...
- mysql 修改表的每个列的字符类型
#!/bin/shfor i in $(mysql -uroot -p112358s uarticles_2019 -e "show tables;"|egrep -v Table ...
- Go指南练习_Reader
https://tour.go-zh.org/methods/22 一.题目描述 实现一个 Reader 类型,它产生一个 ASCII 字符 'A' 的无限流. 二.题目分析 io 包指定了 io.R ...
- Yii2中的composer
1.下載composer 2.composer 插件或組件 3.有三處修改 a.composer require 的插件在vender下 b.同時vender下的composer文件修改 c.comp ...
- 详解 Redis 应用场景及应用实例
redis(二)高级用法 详解 Redis 应用场景及应用实例 Redis 它是什么?它用来做什么?它的优势与短板如何? 告诉你Redis是一个牛逼货