LGOJ4449 于神之怒加强版】的更多相关文章

Description link 给定\(n\),\(m\),\(k\),计算 \[\sum_ {i=1}^n \sum^m_{j=1} gcd(i,j)^k \space mod \space 10^9+7\] Solution 这种带着 \(gcd\) 的题目就是要反演对吧 然后我们设: \[f(n)=n^k=\sum_{d|n} g(d)\] \[ g(n)=\sum_{d|n} f(d) \mu(\frac{n}{d})\] 所以我们化简一下原式: \[\sum_ {i=1}^n \su…
4407: 于神之怒加强版 Time Limit: 80 Sec  Memory Limit: 512 MBSubmit: 241  Solved: 119[Submit][Status][Discuss] Description 给下N,M,K.求 Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. Output 如题 Sample Input 1 23 3 Sample Outpu…
[BZOJ4407]于神之怒加强版(莫比乌斯反演) 题面 BZOJ 求: \[\sum_{i=1}^n\sum_{j=1}^mgcd(i,j)^k\] 题解 根据惯用套路 把公约数提出来 \[\sum_{d=1}^nd^k\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==d]\] 再提一次 \[\sum_{d=1}^nd^k\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}[gcd(i,j)==1]\] 后面这个东西很显然可以数论分块+莫比乌斯反演做到\(O(\…
4407: 于神之怒加强版 Time Limit: 80 Sec  Memory Limit: 512 MBSubmit: 1067  Solved: 494[Submit][Status][Discuss] Description 给下N,M,K.求     Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. Output 如题 Sample Input 1 2 3 3 Sample…
于神之怒加强版 Time Limit: 80 Sec  Memory Limit: 512 MBSubmit: 1184  Solved: 535[Submit][Status][Discuss] Description 给下N,M,K.求     Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. Output 如题 Sample Input 1 2 3 3 Sample Outpu…
[BZOJ4407]于神之怒加强版 Description 给下N,M,K.求 Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. Output 如题 Sample Input 1 2 3 3 Sample Output 20 HINT 1<=N,M,K<=5000000,1<=T<=2000 题解:如何快速推出线性筛的递推式呢?——打表. 发现f(D)长得跟$\varp…
BZOJ挂了... 先把程序放上来,如果A了在写题解吧. #include<cstdio> #include<algorithm> #define N 5000010 #define ll long long #define mod (int)(1e9+7) using namespace std; inline int read() { ,f=;char ch=getchar(); ;ch=getchar();} +ch-';ch=getchar();} return x*f;…
http://www.lydsy.com/JudgeOnline/problem.php?id=4407 题意: 给下N,M,K.求 思路:  来自:http://blog.csdn.net/ws_yzy/article/details/50670213 #include<cstdio> #include<cmath> #include<iostream> #include<algorithm> #include<cstring> #define…
题意:提前给出\(k\),求\(\sum\limits_{i=1}^n \sum\limits_{j=1}^m gcd(i,j)^k\) 套路推♂倒 \[ \sum_{D=1}^n \sum_{d|D} d^k\mu(\frac{D}{d}) \frac{n}{D} \frac{m}{D} \] 是一个\(g = idk * \mu\)啊,单位幂函数和莫比乌斯函数的卷积! \(g(1) = 1\) \(g(p) = -1 + p^k\) 因为带着\(\mu\),只有sf才有贡献 所以\(p \m…
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4407 题解: 莫比乌斯反演 直接套路化式子 $\begin{align*}ANS&=\sum_{i=1}^{n}\sum_{j=1}^{m}gcd(i,j)^k(接下来先枚举gcd的值g,然后求出有多少对(i,j)的gcd=g) \\&=\sum_{g=1}^{min(n,m)}g^k\sum_{d=1}{\frac{n}{g}\mu(d)\lfloor \frac{n}{gd} \…
Description 给下N,M,K.求     Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. Output 如题 Sample Input 1 2 3 3 Sample Output 20 HINT 1<=N,M,K<=5000000,1<=T<=2000 题解: (若因博客园导致数学公式重叠,建议Ctrl+滑轮,重新缩放) $ans=\sum_{i=1}^{n…
Description 给下N,M,K.求 感觉好迷茫啊,很多变换看的一脸懵逼却又不知道去哪里学.一道题做一上午也是没谁了,, 首先按照套路反演化到最后应该是这个式子 $$ans = \sum_{d = 1}^n d^k \sum_{i = 1}^{\frac{n}{d}} \frac{n}{di} \frac{m}{di} \mu(i)$$ 这样就可以$O(n)$计算 继续往下推,考虑$\frac{n}{di} \frac{m}{di}$对答案的贡献 设$T = id$ $ans = \sum…
题目链接 Description 求\[\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^K\ \mod\ 10^9+7\] Solution 前面部分依旧套路. \[\begin{aligned}\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^K&=\sum_{d=1}^{min(n,m)}d^K\sum_{i=1}^n\sum_{j=1}^m\left[(i,j)=d\right]\\&=\sum_{d=1}^{min(n,m)}d^K\sum_{…
题解 非常裸的莫比乌斯反演. 但是反演完还需要快速计算一个积性函数(我直接用$nlogn$卷积被TLE了 推荐一个博客 我也不想再写一遍了 代码 #include<cstring> #include<cstdio> #include<algorithm> #define ll long long #define rd read() using namespace std; ; const int N = 5e6; int T, n, m, k; int mu[N], p…
挺套路的题,然而一开始还是想错了…… $\sum_{i = 1}^{n}\sum_{j = 1}^{m}gcd(i, j) ^ {k} = \sum_{T = 1}^{min(n, m)}\left \lfloor \frac{n}{T} \right \rfloor \left \lfloor \frac{m}{T} \right \rfloor\sum_{d | T}\mu (\frac{T}{d}) * d^{k}$ 我们设$h(i) =\sum_{d | T}\mu (\frac{T}{…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4407 \( ans = \sum\limits_{D=1}^{min(n,m)}\frac{n}{D}*\frac{m}{D}\sum\limits_{d|D}d^{k}\mu (\frac{D}{d}) \) 设 \( g[ i ]=\sum\limits_{j|i}(\frac{i}{j})^{k}*\mu (j) \) ,则 g 是积性函数(因为 id 是积性函数,所以 idk 也是…
[题目链接] https://www.luogu.org/problemnew/show/P4449 给定n,m,k,计算 \(\sum_{i=1}^n \sum_{j=1}^m \mathrm{gcd}(i,j)^k\) 对1000000007取模的结果 /* ----------------------- 基本套路: 1.枚举约数 2.枚举整除分块,观察倍数关系 3.发现g(T)是[积性函数],且g=μ*f.此时有很好的转移方法 if(i为质数) g[i]=f[i]-1 else{ if(i…
#include<bits/stdc++.h> #define N 5000010 #define yql 1000000007 using namespace std; typedef long long ll; ],m[],maxn,vis[N],prime[N]; ,fac[N]; ll f[N],s[N]; inline int read(){ ,x=;char ch; ;}'); +ch-'); return f*x; } inline ll fpow(ll x,ll p){ x%=…
\(\color{#0066ff}{ 题目描述 }\) 给定n,m,k,计算 \(\sum_{i=1}^n \sum_{j=1}^m \mathrm{gcd}(i,j)^k\) 对1000000007取模的结果 \(\color{#0066ff}{输入格式}\) 多组数据. 第一行是两个数T,K; 之后的T行,每行两个整数n,m: \(\color{#0066ff}{输出格式}\) K行,每行一个结果 \(\color{#0066ff}{输入样例}\) 1 2 3 3 \(\color{#006…
link 给定n,m,k,计算\(\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^k\)对1000000007取模的结果 多组数据,T<=2000,1<=N,M,K<=5000000 推式子 \(\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^k\) \(=\sum_{p=1}^np^k\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=p]\) \(=\sum_{p=1}^np^{k}\sum_{i=1}^{n/p}\sum_{…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4407 推导如这里:https://www.cnblogs.com/clrs97/p/5191506.html 然后发现 \( F(D) \) 是一个积性函数,可以筛质数的同时筛出来: 首先,单个质数 \( p \) 时只有 \( d=1 \) 和 \( d=p \) 两个因数,所以 \( F[p] = p^{k} - 1 \) 然后如果筛到互质的数,直接把 \( F() \) 相乘即可:…
题目描述 给下N,M,K.求 输入 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. 输出 如题 样例输入 1 2 3 3 样例输出 20 题解 莫比乌斯反演+线性筛 $\sum\limits_{i=1}^n\sum\limits_{j=1}^m\gcd(i,j)^k\\=\sum\limits_{d=1}^{\min(n,m)}d^k\sum\limits_{i=1}^n\sum\limits…
题目链接 套路一般的枚举$gcd(i,j)=w$.设$min(n,m)=top$,则有 $\sum\limits_{i=1}^{n}\sum\limits_{j=1}{m}gcd(i,j)$ $=\sum\limits_{w=1}^{top}w^{k}\sum\limits_{w|i}^{n}\sum\limits_{w|j,(i,j)=w}^{m}1$ 我们设$f(w)=\sum\limits_{w|i}^{n}\sum\limits_{w|j,(i,j)=w}^{m}1$ $F(w)=\su…
https://www.luogu.org/problemnew/show/P4449 \(F(n)=\sum\limits_{i=1}^{n}\sum\limits_{i=1}^{m} gcd(i,j)^k\) 首先加方括号,枚举g,提g:(\(min\)表示\(min(n,m)\)) \(\sum\limits_{g=1}^{min} g^k \sum\limits_{i=1}^{n} \sum\limits_{i=1}^{m} [gcd(i,j)==g]\) \(\sum\limits_{…
题目大意 给定\(t,k(t\leq2000,k\leq5*10^6)\) \(t\)组询问,每组给出\(n,m(n,m\leq5*10^6)\)求$\sum_{i=1}^n \sum_{j=1}^m \mathrm{gcd}(i,j)^k $ 题解 假设\(n\)较小 枚举gcd 原式=\(\sum_{a=1}^{n}a^k\sum_{i=1}^{\lfloor\frac{n}{a}\rfloor} \sum_{j=1}^{\lfloor\frac{m}{a}\rfloor} [gcd(i,j…
看着就像反演,所以先推式子(默认n<m): \[ \sum_{d=1}^{n}d^k\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==d] \] \[ =\sum_{d=1}^{n}d^k\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor }\sum_{j=1}^{\lfloor \frac{m}{d} \rfloor }[gcd(i,j)==d] \] \[ =\sum_{d=1}^{n}d^k\sum_{i=1}^{\lfloor \frac{…
题意 默认\(n\leqslant m\). 一波莫反后可得: \(\sum\limits_{T=1}^{n}\frac{n}{T}\frac{m}{T}\sum\limits_{d|T}d^k\mu(\frac{T}{d})\) 前面显然是可以除法分块的,后面是个积性函数,可以线性筛. 设\(f(x)=\sum\limits_{d|x}d^k\mu(\frac{x}{d})\) 线性筛时\(i\)中不含\(prime_j\)自然好说,考虑\(i\)中含\(prime_j\)怎么办. 设\(g(…
Description 给下N,M,K.求     Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. Output #include<bits/stdc++.h> #define ll long long #define maxn 5000003 #define N 5000001 using namespace std; const ll mod=1000000007; name…
题面 题目分析 \[ \begin{split} \sum\limits_{i=1}^n\sum\limits_{j=1}^mgcd(i,j)^k&=\sum\limits_{d=1}^nd^k\sum\limits_{i=1}^n\sum\limits_{j=1}^m[gcd(i,j)==d]\\ \end{split} \] 设\(f(x)\)表示\(gcd(i,j)=x\),\(g(x)\)表示\(gcd(i,j)==kx,k\in Z\). \[ \begin{split} g(x)&am…
这道题算是我完完整整推的第一道题,写篇题解纪念一下. 题目 废话不多说,直接开始推式子(给新手准备,过程较详细,大佬可自行跳步),以下过程中均假设 \((n\le m)\),\([d=1]\) 类似于代码中的 (d==1) . \[\sum_{i=1}^{n}\sum_{j=1}^mgcd(i,j)^k \] 直接按套路提取 \[\sum_{d=1}^{n}d^k\sum_{i=1}^{n}\sum_{j=1}^m[gcd(i,j)=d] \] 等价于 \[\sum_{d=1}^{n}d^k\s…