【JZOJ6150】爱乐之城
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=1ni∑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∈Sf(gcd(a∈T))∏a∈Tg(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=2ni∑j=1i[gcd(i,j)=1]j)+1=∑i=1ni2φ(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∣nh(d),即h(n)=f(n)−∑d∣n&d<nh(d)h(n)=f(n)-\sum_{d|n\&d<n}h(d)h(n)=f(n)−∑d∣n&d<nh(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∈Tg(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=1mh(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】爱乐之城相关推荐
- 《爱乐之城》:两个追梦人令人唏嘘又动容的爱情故事
潦倒的爵士乐钢琴家遇到落魄的服务员兼龙套演员,同是天涯沦落人.彼此吸引,谈吐默契,塞巴斯蒂安坚持做复古爵士乐,却饱受白眼,连一份稳定的工作都没有.米娅从法学院辍学成了咖啡服务员,各个剧组面试,却处处碰 ...
- 《爱乐之城》配色分享
电影:爱乐之城. "我会一直爱着你." "我以为爱情可以填满人生的遗憾,然而制造更多遗憾的却偏是爱情." "我们追寻的不过是另一个人的爱,一股悸动.一 ...
- 微表情透视“爱乐之城”:10秒分手戏潜台词知多少
过年的时候,处座带着小侄女去看了韩寒导演的<乘风破凉>.出了电影院,她一脸兴奋的说,这电影真好看,乐死她了. 然而处座却觉得,看这电影就好像刷了一个半小时的微博段子,乐是乐了,乐完了什么都 ...
- 购魅族魅蓝X 《爱乐之城》电影票限量送
2.14情人节即将到来,魅族为广大用户准备一个浪漫的购机优惠活动:2月10日至2月14日,购买魅蓝X的用户有机会获赠限量<爱乐之城>电影票.如今购机赠票活动正在火热进行中. 活动期间,每天 ...
- [ACNOI2021]爱乐之城
题目 题目背景 看过<心灵奇旅>的,可以跳过这一段.应该说,题目背景总是没啥用吧? 中学音乐教师 JoeGardner\rm Joe\;GardnerJoeGardner 刚刚获得了人生中 ...
- 《爱乐之城》月亮与六便士,你选哪个?
我知道,以我本身的文化底蕴,是不足以评论这个电影的,但是一百个读者就有一百个哈姆雷特,我想靠着看完这部电影的后劲,来说说我自己的一些感受,如果不认同,君尽可一笑置之,就当这是我这个愚人的自娱自乐吧 : ...
- DTOJ 4426. 爱乐之城
题意 当梦想与爱情揉合在一起,会发生什么呢? 小演员 Mia 的志向是女演员兼剧作家,她沉迷老电影明星.她在华纳兄弟的片场当咖啡师,经常翘班去试镜,如果真的接到戏,哪怕再小的角色也会让她欣喜若狂. S ...
- 【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 ...
- swift 去json空格_我尽力了,你们快些拿去吧!
今天是平安夜,明天就是圣诞节了. 我下午看了一眼微博,发现好多个和圣诞节有关的热搜. 灵机一动,我决定为大家送上一篇圣诞特辑.你想要的,可能就在这篇文章里. 首先,圣诞壁纸. 到了圣诞节,换壁纸是最基 ...
最新文章
- 学界 | 史上最强GAN图像生成器,Inception分数提高两倍
- Python3快速入门(五)——Python3函数
- 从入门到进阶|如何基于WebRTC搭建一个视频会议
- 线性期望(BUPT2015校赛.F)
- 怎么计算信息完整度_德阳冻货运镖怎么计算费用
- 字符串按照单词为单位逆序排列
- Build path -No action available/classpath .project
- 如何为活动设计海报|优秀案例,分享关键技巧
- C# 6.0 的新语法特性
- 2019的第一工作日
- Delphi中TMediaPlayer播放音乐出现no MCI device open的错误的解决方法
- opencv php,OpenCV应用实例
- 用栈实现队列,实现Enqueue和Dequeue方法
- 856. Score of Parentheses
- 注册(五)之请求处理
- 联想电脑无法修复此计算机怎么办,联想一键还原不能用怎么办
- 计算机保研面试英文,计算机保研面试英文自我介绍范文
- 学生机房虚拟化(六)使用Clonezilla克隆Linux系统
- 归并排序(C语言版)
- Lesson 49 At the butcher's
热门文章
- ActiveMQ 无法启动 提示端口被占用,永远无法杀掉进程
- 卷积神经网络的反向传播,卷积反向传播过程
- java开发中常用插件三----blockui
- 与其坐而论道,不如起而行之
- 帆船运动-第13届蓝桥杯Scratch省赛真题第2题
- 厉害了,可以不重启JVM就替换掉已经加载的类?
- php高仿网络硬盘,高仿永硕网盘E盘源码
- 图片文件如何批量改名,分享批量改名小技巧
- 静坐常思己过,闲谈莫论人非,能受苦乃为志士,肯吃亏不是痴人,敬君子方显有德,怕小人不算无能,退......
- 使用python制作读取示波器波形的GUI小工具