Description

给定nnn个元素a1∼na_{1∼n}a1∼n​,对于i∈[1,n]i \in[1,n]i∈[1,n]求F(a1∼i)F(a_{1∼i})F(a1∼i​)。
其中:
f(n)=∑i=1n∑j=1nμ(ij)f(n)=\sum_{i=1}^n\sum_{j=1}^n\mu(ij)f(n)=∑i=1n​∑j=1n​μ(ij)
g(n)=∑i=1ni∑j=1n[gcd(i,j)=1]jg(n)=\sum_{i=1}^n i\sum_{j=1}^n[gcd(i,j)=1]jg(n)=∑i=1n​i∑j=1n​[gcd(i,j)=1]j
F(S)=∑T∈Sf(gcd(a∈T))∏a∈Tg(a)F(S)=\sum_{T\in S}f(gcd(a\in T))\prod_{a\in T}g(a)F(S)=∑T∈S​f(gcd(a∈T))∏a∈T​g(a)
答案对998244353取模,强制在线,真实的aia_iai​两两不同。

Solution

以下n非题目中的n
g(n)=2(∑i=2ni∑j=1i[gcd(i,j)=1]j)+1=∑i=1ni2φ(i)g(n)=2(\sum_{i=2}^ni\sum_{j=1}^i[gcd(i,j)=1]j)+1=\sum_{i=1}^ni^2φ(i)g(n)=2(∑i=2n​i∑j=1i​[gcd(i,j)=1]j)+1=∑i=1n​i2φ(i)
f(n)=∑i=1nμ(i)∑j=1⌊ni⌋∑k=1⌊ni⌋μ(ij)μ(ik)=∑i=1nμ(i)(∑j=1⌊ni⌋μ(jk))2f(n)=\sum_{i=1}^n\mu(i)\sum_{j=1}^{\lfloor\frac{n}{i}\rfloor}\sum_{k=1}^{\lfloor\frac{n}{i}\rfloor}\mu(ij)\mu(ik)=\sum_{i=1}^n\mu(i)(\sum_{j=1}^{\lfloor\frac{n}{i}\rfloor}\mu(jk))^2f(n)=∑i=1n​μ(i)∑j=1⌊in​⌋​∑k=1⌊in​⌋​μ(ij)μ(ik)=∑i=1n​μ(i)(∑j=1⌊in​⌋​μ(jk))2
注意到我们要对f(1∼m)f(1∼m)f(1∼m)都求答案,但nnn每增加111改动只有约数个数位,所以增量求即可。
构造函数h(n)h(n)h(n)使得f(n)=∑d∣nh(d)f(n)=\sum_{d|n}h(d)f(n)=∑d∣n​h(d),即h(n)=f(n)−∑d∣n&amp;d&lt;nh(d)h(n)=f(n)-\sum_{d|n\&amp;d&lt;n}h(d)h(n)=f(n)−∑d∣n&d<n​h(d)。
那么F(S)=∑T∈S(∑d∣gcd(a∈T)h(d))∏a∈Tg(a)F(S)=\sum_{T\in S}(\sum_{d|gcd(a\in T)}h(d))\prod_{a\in T}g(a)F(S)=∑T∈S​(∑d∣gcd(a∈T)​h(d))∏a∈T​g(a)
交换主体:F(S)=∑d=1mh(d)(∏d∣a(g(a)+1)−1)F(S)=\sum_{d=1}^m h(d)(\prod_{d|a}(g(a)+1)-1)F(S)=∑d=1m​h(d)(∏d∣a​(g(a)+1)−1)
注意到F(S)F(S)F(S)增加一位也只会改变约数个数的值,且aia_iai​两两不同,直接算即可。

Code

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<vector>
#define fo(i,j,k) for(int i=j,o=k;i<=o;++i)
#define fd(i,j,k) for(int i=j;i>=k;--i)
using namespace std;
typedef long long ll;
const int N=4e5+10,mo=998244353;
int mu[N],pr[N],phi[N];
vector<int> b[N];
int read(){char ch=' ';int t=0;for(;ch<'0' || ch>'9';ch=getchar());for(;ch>='0' && ch<='9';ch=getchar()) t=(t<<1)+(t<<3)+ch-48;return t;
}
int pl(int x,int y){return x+y>=mo?x+y-mo:x+y;
}
void inc(int &x,int y){x=x+y>=mo?x+y-mo:x+y;
}
void pre(int n){mu[1]=phi[1]=1;fo(i,2,n){if(!phi[i]) phi[i]=i-1,mu[i]=-1,pr[++pr[0]]=i;fo(j,1,pr[0]){int t=i*pr[j];if(t>n) break;if(i%pr[j]==0) {phi[t]=phi[i]*pr[j],mu[t]=0;break;}mu[t]=-mu[i],phi[t]=phi[i]*(pr[j]-1);}}
}
int f[N],g[N],s[N],h[N],w[N];
int main()
{freopen("lalaland.in","r",stdin);freopen("lalaland.out","w",stdout);int n=read(),m=read(),tp=read();pre(m);fo(i,1,m) g[i]=pl(g[i-1],(ll)i*i%mo*phi[i]%mo);fo(i,1,m)fo(j,1,m/i) b[i*j].push_back(i);fo(i,1,m){f[i]=f[i-1];for(int d:b[i]){int t=mu[i]*(2*s[d]+mu[i]);f[i]+=mu[d]*t%mo;s[d]+=mu[i];}}fo(i,1,m){h[i]=f[i];for(int d:b[i]) if(d<i) h[i]-=h[d];}fo(i,1,m) h[i]=(h[i]+mo)%mo,w[i]=1;int ans=0;fo(i,1,n){int x=read();if(tp==1) x=(19891989ll*ans+x)%m+1;for(int d:b[x]){inc(ans,mo-(ll)h[d]*(w[d]-1)%mo);w[d]=(ll)w[d]*pl(g[x],1)%mo;inc(ans,(ll)h[d]*(w[d]-1)%mo);}if(tp) printf("%d\n",ans);}if(!tp) printf("%d\n",ans);
}

【JZOJ6150】爱乐之城相关推荐

  1. 《爱乐之城》:两个追梦人令人唏嘘又动容的爱情故事

    潦倒的爵士乐钢琴家遇到落魄的服务员兼龙套演员,同是天涯沦落人.彼此吸引,谈吐默契,塞巴斯蒂安坚持做复古爵士乐,却饱受白眼,连一份稳定的工作都没有.米娅从法学院辍学成了咖啡服务员,各个剧组面试,却处处碰 ...

  2. 《爱乐之城》配色分享

    电影:爱乐之城. "我会一直爱着你." "我以为爱情可以填满人生的遗憾,然而制造更多遗憾的却偏是爱情." "我们追寻的不过是另一个人的爱,一股悸动.一 ...

  3. 微表情透视“爱乐之城”:10秒分手戏潜台词知多少

    过年的时候,处座带着小侄女去看了韩寒导演的<乘风破凉>.出了电影院,她一脸兴奋的说,这电影真好看,乐死她了. 然而处座却觉得,看这电影就好像刷了一个半小时的微博段子,乐是乐了,乐完了什么都 ...

  4. 购魅族魅蓝X 《爱乐之城》电影票限量送

    2.14情人节即将到来,魅族为广大用户准备一个浪漫的购机优惠活动:2月10日至2月14日,购买魅蓝X的用户有机会获赠限量<爱乐之城>电影票.如今购机赠票活动正在火热进行中. 活动期间,每天 ...

  5. [ACNOI2021]爱乐之城

    题目 题目背景 看过<心灵奇旅>的,可以跳过这一段.应该说,题目背景总是没啥用吧? 中学音乐教师 JoeGardner\rm Joe\;GardnerJoeGardner 刚刚获得了人生中 ...

  6. 《爱乐之城》月亮与六便士,你选哪个?

    我知道,以我本身的文化底蕴,是不足以评论这个电影的,但是一百个读者就有一百个哈姆雷特,我想靠着看完这部电影的后劲,来说说我自己的一些感受,如果不认同,君尽可一笑置之,就当这是我这个愚人的自娱自乐吧 : ...

  7. DTOJ 4426. 爱乐之城

    题意 当梦想与爱情揉合在一起,会发生什么呢? 小演员 Mia 的志向是女演员兼剧作家,她沉迷老电影明星.她在华纳兄弟的片场当咖啡师,经常翘班去试镜,如果真的接到戏,哪怕再小的角色也会让她欣喜若狂. S ...

  8. 【GDOI2019Day1模拟2019.4.28】爱乐之城

    Description: 题解: 数论组合题,成功区分数论忘光选手. task1: ∑i=1n∑j=1ni∗j∗[(i,j)=1]\sum_{i=1}^n \sum_{j=1}^n i*j*[(i,j ...

  9. swift 去json空格_我尽力了,你们快些拿去吧!

    今天是平安夜,明天就是圣诞节了. 我下午看了一眼微博,发现好多个和圣诞节有关的热搜. 灵机一动,我决定为大家送上一篇圣诞特辑.你想要的,可能就在这篇文章里. 首先,圣诞壁纸. 到了圣诞节,换壁纸是最基 ...

最新文章

  1. 学界 | 史上最强GAN图像生成器,Inception分数提高两倍
  2. Python3快速入门(五)——Python3函数
  3. 从入门到进阶|如何基于WebRTC搭建一个视频会议
  4. 线性期望(BUPT2015校赛.F)
  5. 怎么计算信息完整度_德阳冻货运镖怎么计算费用
  6. 字符串按照单词为单位逆序排列
  7. Build path -No action available/classpath .project
  8. 如何为活动设计海报|优秀案例,分享关键技巧
  9. C# 6.0 的新语法特性
  10. 2019的第一工作日
  11. Delphi中TMediaPlayer播放音乐出现no MCI device open的错误的解决方法
  12. opencv php,OpenCV应用实例
  13. 用栈实现队列,实现Enqueue和Dequeue方法
  14. 856. Score of Parentheses
  15. 注册(五)之请求处理
  16. 联想电脑无法修复此计算机怎么办,联想一键还原不能用怎么办
  17. 计算机保研面试英文,计算机保研面试英文自我介绍范文
  18. 学生机房虚拟化(六)使用Clonezilla克隆Linux系统
  19. 归并排序(C语言版)
  20. Lesson 49 At the butcher's

热门文章

  1. ActiveMQ 无法启动 提示端口被占用,永远无法杀掉进程
  2. 卷积神经网络的反向传播,卷积反向传播过程
  3. java开发中常用插件三----blockui
  4. 与其坐而论道,不如起而行之
  5. 帆船运动-第13届蓝桥杯Scratch省赛真题第2题
  6. 厉害了,可以不重启JVM就替换掉已经加载的类?
  7. php高仿网络硬盘,高仿永硕网盘E盘源码
  8. 图片文件如何批量改名,分享批量改名小技巧
  9. 静坐常思己过,闲谈莫论人非,能受苦乃为志士,肯吃亏不是痴人,敬君子方显有德,怕小人不算无能,退......
  10. 使用python制作读取示波器波形的GUI小工具