洛谷题面传送门

hot tea.

首先注意到这个 \(\text{lcm}\) 特别棘手,并且这里的 \(k\) 大得离谱,我们也没办法直接枚举每个质因子的贡献来计算答案。不过考虑到如果我们把这里的 \(\text{lcm}\) 改为 \(\gcd\) 那么一遍莫比乌斯反演即可搞定,因此考虑将这里的 \(\text{lcm}\) 与 \(\gcd\) 联系在一起。那么什么能将这两个东西联系在一起呢?Min-Max 容斥,具体来说,考虑式子

\[\text{lcm}(S)=\prod\limits_{\varnothing\ne T\subseteq S}\gcd(T)^{(-1)^{|T|-1}}
\]

因此我们考虑开始推式子:

\[\begin{aligned}
res&=\prod\limits_{i_1,i_2,\cdots,i_k}\text{lcm}(i_1,i_2,\cdots,i_k)\\
&=\prod\limits_{i_1,i_2,\cdots,i_k}\prod\limits_{S\subseteq\{1,2,3,\cdots,k\}}\gcd(\{i_x|x\in S\})^{(-1)^{|S|-1}}\\
&=\prod\limits_{j=1}^k\prod\limits_{|S|=j,S\subseteq\{1,2,3,\cdots,k\}}\prod\limits_{i_1,i_2,\cdots,i_k}\gcd(\{i_x|x\in S\})^{(-1)^{j-1}}\\
&=\prod\limits_{j=1}^k\prod\limits_{i_1,i_2,\cdots,i_j}\gcd(i_1,i_2,\cdots,i_j)^{(-1)^{j-1}·\dbinom{k}{j}·n^{k-j}}\\
&=\prod\limits_{j=1}^k\prod\limits_{d=1}^nd^{(-1)^{j-1}·\dbinom{k}{j}·n^{k-j}·\sum\limits_{i_1,i_2,\cdots,i_j}[\gcd(i_1,i_2,\cdots,i_j)=d]}\\
&=\prod\limits_{j=1}^k\prod\limits_{d=1}^nd^{(-1)^{j-1}·\dbinom{k}{j}·n^{k-j}·\sum\limits_{p=1}^{n/d}\mu(p)\lfloor\dfrac{n}{dp}\rfloor^j}\\
&=\prod\limits_{d=1}^n\prod\limits_{p=1}^n(d^{\mu(p)})^{\sum\limits_{j=1}^k(-1)^{j-1}·n^{k-j}·\lfloor\dfrac{n}{dp}\rfloor^j}\\
&=\dfrac{1}{\prod\limits_{d=1}^n\prod\limits_{p=1}^n(d^{\mu(p)})^{\sum\limits_{j=1}^k(-1)^{j}·n^{k-j}·\lfloor\dfrac{n}{dp}\rfloor^j}}\\
&=\dfrac{1}{\prod\limits_{d=1}^n\prod\limits_{p=1}^n(d^{\mu(p)})^{\sum\limits_{j=0}^k(-1)^{j}·n^{k-j}·\lfloor\dfrac{n}{dp}\rfloor^j-n^k}}\\
&=\dfrac{1}{\prod\limits_{d=1}^n\prod\limits_{p=1}^n(d^{\mu(p)})^{(n-\lfloor\dfrac{n}{dp}\rfloor)^k-n^k}}\\
&=\dfrac{1}{\prod\limits_{T=dp}f(T)^{(n-\lfloor\dfrac{n}{T}\rfloor)^k-n^k}}
\end{aligned}
\]

其中 \(f(T)=\prod\limits_{dp=T}d^{\mu(p)}\)。

整除分块求解即可,注意,根据费马小定理,指数上那托东西要 \(\bmod 998244352\),而由于指数上面还套了一个快速幂,且这里的 \(k\) 很大,因此需要欧拉降幂,具体来说如果 \(k\le\varphi(998244352)\) 那么直接算即可,否则需令 \(k\leftarrow k\bmod\varphi(998244352)+\varphi(998244352)\)

时间复杂度 \(T\sqrt{n}\log n\)

const int MAXN=1e6;
const int MAXLEN=100;
const int MOD=998244353;
const int PHI=MOD-1;
const int PPHI=402653184;
int getmod(ll x){return (x>PPHI)?(x%PPHI+PPHI):x;}
int pr[MAXN+5],prcnt=0,mu[MAXN+5],prd[MAXN+5];
bool vis[MAXN+5];
int qpow(int x,int e){
if(e<0) e+=PHI;int ret=1;
for(;e;e>>=1,x=1ll*x*x%MOD) if(e&1) ret=1ll*ret*x%MOD;
return ret;
}
int _qpow(int x,int e){
int ret=1;
for(;e;e>>=1,x=1ll*x*x%PHI) if(e&1) ret=1ll*ret*x%PHI;
return ret;
}
void sieve(int n){
mu[1]=1;
for(int i=2;i<=n;i++){
if(!vis[i]) mu[i]=-1,pr[++prcnt]=i;
for(int j=1;j<=prcnt&&pr[j]*i<=n;j++){
vis[pr[j]*i]=1;if(i%pr[j]==0) break;
mu[pr[j]*i]=-mu[i];
}
}
for(int i=1;i<=n;i++) prd[i]=1;
for(int i=1;i<=n;i++) for(int j=1;j*i<=n;j++)
prd[i*j]=1ll*prd[i*j]*qpow(i,mu[j])%MOD;
// for(int i=1;i<=n;i++) printf("%d\n",prd[i]);
prd[0]=1;
for(int i=1;i<=n;i++) prd[i]=1ll*prd[i-1]*prd[i]%MOD;
}
int n;ll k;
char buf[MAXLEN+5];
void solve(){
scanf("%d%s",&n,buf+1);k=0;int len=strlen(buf+1);
for(int i=1;i<=len;i++) k=getmod(10ll*k+buf[i]-'0');
int res=1;
for(int l=1,r;l<=n;l=r+1){
r=(n/(n/l));
res=1ll*res*qpow(1ll*prd[r]*qpow(prd[l-1],MOD-2)%MOD,(_qpow(-n/l+n,k)-_qpow(n,k)+PHI)%PHI)%MOD;
} printf("%d\n",qpow(res,MOD-2));
}
int main(){
int qu;scanf("%d",&qu);sieve(MAXN);
while(qu--) solve();
return 0;
}

洛谷 P7360 -「JZOI-1」红包(Min-Max 容斥+推式子)的更多相关文章

  1. [洛谷P3701]「伪模板」主席树

    题目大意:太暴力了,就不写了,看这儿 题解:对于每个$byx$的人,从源点向人连边,容量为此人的寿命. 对于每个手气君的人,从人向汇点连边,容量为此人的寿命. 对于每个$byx$的人与手气君的人,如果 ...

  2. LOJ 3119: 洛谷 P5400: 「CTS2019 | CTSC2019」随机立方体

    题目传送门:LOJ #3119. 题意简述: 题目说的很清楚了. 题解: 记恰好有 \(i\) 个极大的数的方案数为 \(\mathrm{cnt}[i]\),则答案为 \(\displaystyle\ ...

  3. LOJ 3120: 洛谷 P5401: 「CTS2019 | CTSC2019」珍珠

    题目传送门:LOJ #3120. 题意简述: 称一个长度为 \(n\),元素取值为 \([1,D]\) 的整数序列是合法的,当且仅当其中能够选出至少 \(m\) 对相同元素(不能重复选出元素). 问合 ...

  4. 【洛谷5643】[PKUWC2018] 随机游走(Min-Max容斥+待定系数法+高维前缀和)

    点此看题面 大致题意: 从一个给定点出发,在一棵树上随机游走,对于相邻的每个点均有\(\frac 1{deg}\)的概率前往.多组询问,每次给出一个点集,求期望经过多少步能够访问过点集内所有点至少一次 ...

  5. LOJ #3119「CTS2019 | CTSC2019」随机立方体 (容斥)

    博客链接 里面有个下降幂应该是上升幂 还有个bk的式子省略了k^3 CODE 蛮短的 #include <bits/stdc++.h> using namespace std; const ...

  6. 洛谷 P2522 [HAOI2011]Problem b (莫比乌斯反演+简单容斥)

    题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 输入输出格式 输入格式: 第一行一个整数 ...

  7. 洛谷 1447 [NOI2010]能量采集——容斥/推式子

    题目:https://www.luogu.org/problemnew/show/P1447 1.容斥原理 求 f [ i ] 表示 gcd==i 的对数,先 f [ i ] = (n/i) * (m ...

  8. 洛谷 P4710 「物理」平抛运动

    洛谷 P4710 「物理」平抛运动 洛谷传送门 题目描述 小 F 回到班上,面对自己 28 / 110 的物理,感觉非常凉凉.他准备从最基础的力学学起. 如图,一个可以视为质点的小球在点 A(x_0, ...

  9. 洛谷比赛 「EZEC」 Round 4

    洛谷比赛 「EZEC」 Round 4 T1 zrmpaul Loves Array 题目描述 小 Z 有一个下标从 \(1\) 开始并且长度为 \(n\) 的序列,初始时下标为 \(i\) 位置的数 ...

随机推荐

  1. 【转】简述C和C++的学习历程

    简述C和C++的学习历程(转) --by:肖舸老师总是被同学们问到,如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复. 一家之言,欢迎拍砖哈. 1.可以考虑先学习C. 大多数时候 ...

  2. 【c++ Prime 学习笔记】第19章 特殊工具与技术

    某些程序对内存分配有特殊要求,不能直接使用标准内存管理机制 重载new和delete算符可控制内存分配的过程 19.1.1 重载new和delete 说法"重载new和delete" ...

  3. 让全链路压测变得更简单!Takin2.0重磅来袭!

    自Takin社区版1.0发布两个多月以来,有很多测试同学陆续在各自的工作中运用了起来,其中包括金融.电商.物流.出行服务等行业.这个过程中我们收到了很多同学的反馈建议,同时也了解到很多同学在落地全链路 ...

  4. 正则表达式: NFA引擎匹配原理

    NFA引擎匹配原理 1       为什么要了解引擎匹配原理 一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱出非常动听的乐曲,一个演奏者同样可以照着乐谱奏出动 ...

  5. UltraSoft - Alpha - 测试报告

    遇到的bug bug:在vue.config.js里配置proxy,并修改请求的url后仍无法连接到后端. 解决: url最后忘了'/',导致和后端不匹配,会有404.500等错误. 后端服务未打开或 ...

  6. Noip模拟73 2021.10.10

    老妈送来了防寒补给就很棒,再也不用晚上盖两层毛巾被了,再也不用担心晚上自动把毛巾被$split$了 还有一些好吃的耶叶 T1 小L的疑惑 考场上疑惑的切掉了 直接把$a$排序然后处理前缀和的过程中判断 ...

  7. stm32直流电机驱动与测速

    stm32直流电机驱动与测速 说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了 ...

  8. STM32时钟系统之利用 systick 定时器来实现准确的延时。

    本篇文章带着大家来认识一下 STM32 的时钟系统,以及利用 systick 定时器来实现一个比较准确的延时. 我们首先从时钟说起,时钟在MCU中的作用,就好比于人类的心脏一样不可或缺.STM32 的 ...

  9. 认真讲说static关键字

    static 关键字主要有以下四种使用场景 修饰成员变量和成员方法 静态代码块 修饰类(只能修饰内部类) 静态导包(用来导入类中的静态资源,1.5之后的新特性) 修饰成员变量和成员方法(常用) 被 s ...

  10. Luogu P2081 [NOI2012]迷失游乐园 | 期望 DP 基环树

    题目链接 基环树套路题.(然而各种错误调了好久233) 当$m=n-1$时,原图是一棵树. 先以任意点为根做$dp$,求出从每一个点出发,然后只往自己子树里走时路径的期望长度. 接着再把整棵树再扫一遍 ...