题目:
https://ac.nowcoder.com/acm/contest/5674/E
calculate ∏i=ab∏j=cdgcd(xi,yj)\prod\limits_{i=a}^{b}\prod\limits_{j=c}^{d}gcd(x^i,y^j)i=a∏b​j=c∏d​gcd(xi,yj)modulo 998244353998244353998244353

思路:
∏i=ab∏j=cdgcd(xi,yj)=∏i=ab∏j=cd∏k=1npkmin(ak⋅i,bk⋅j)pk为x和y共同的素因子,ak为x中pk的幂,同理bk=∏k=1n∏i=ab∏j=cdpkmin(ak⋅i,bk⋅j)\begin{aligned} &\prod\limits_{i=a}^{b}\prod\limits_{j=c}^{d}gcd(x^i,y^j)\\ =&\prod\limits_{i=a}^{b}\prod\limits_{j=c}^{d}\prod\limits_{k=1}^{n}p_k^{min(a_k\cdot i,b_k\cdot j)}\quad p_k为x和y共同的素因子,a_k为x中p_k的幂,同理b_k\\ =&\prod\limits_{k=1}^{n}\prod\limits_{i=a}^{b}\prod\limits_{j=c}^{d}p_k^{min(a_k\cdot i,b_k\cdot j)} \end{aligned} ==​i=a∏b​j=c∏d​gcd(xi,yj)i=a∏b​j=c∏d​k=1∏n​pkmin(ak​⋅i,bk​⋅j)​pk​为x和y共同的素因子,ak​为x中pk​的幂,同理bk​k=1∏n​i=a∏b​j=c∏d​pkmin(ak​⋅i,bk​⋅j)​​
然后分类讨论:
枚举kkk,iii,当j≤⌊ak⋅ibk⌋j\le\lfloor\frac{a_k\cdot i}{b_k}\rfloorj≤⌊bk​ak​⋅i​⌋时,min(ak⋅i,bk⋅j)=bk⋅jmin(a_k\cdot i,b_k\cdot j)=b_k\cdot jmin(ak​⋅i,bk​⋅j)=bk​⋅j,当j≥⌊ak⋅ibk⌋+1j\ge\lfloor\frac{a_k\cdot i}{b_k}\rfloor+1j≥⌊bk​ak​⋅i​⌋+1时,min(ak⋅i,bk⋅j)=ak⋅imin(a_k\cdot i,b_k\cdot j)=a_k\cdot imin(ak​⋅i,bk​⋅j)=ak​⋅i。
当然还要对⌊ak⋅ibk⌋\lfloor\frac{a_k\cdot i}{b_k}\rfloor⌊bk​ak​⋅i​⌋进行分类讨论,取其中一种情况说明。
当c≤⌊ak⋅ibk⌋≤dc\le\lfloor\frac{a_k\cdot i}{b_k}\rfloor\le dc≤⌊bk​ak​⋅i​⌋≤d时
∏k=1n∏i=ab∏j=cdpkmin(ak⋅i,bk⋅j)=∏k=1n∏i=abpkbk⋅(c+⌊ak⋅ibk⌋)⋅(⌊ak⋅ibk⌋−c+1)2+ak⋅i⋅(d−⌊ak⋅ibk⌋+1)\begin{aligned} &\prod\limits_{k=1}^{n}\prod\limits_{i=a}^{b}\prod\limits_{j=c}^{d}p_k^{min(a_k\cdot i,b_k\cdot j)}\\ =&\prod\limits_{k=1}^{n}\prod\limits_{i=a}^{b}p_k^{b_k\cdot \frac{(c+\lfloor\frac{a_k\cdot i}{b_k}\rfloor)\cdot (\lfloor\frac{a_k\cdot i}{b_k}\rfloor-c+1)}{2}+a_k\cdot i\cdot (d-\lfloor\frac{a_k\cdot i}{b_k}\rfloor+1)} \end{aligned} =​k=1∏n​i=a∏b​j=c∏d​pkmin(ak​⋅i,bk​⋅j)​k=1∏n​i=a∏b​pkbk​⋅2(c+⌊bk​ak​⋅i​⌋)⋅(⌊bk​ak​⋅i​⌋−c+1)​+ak​⋅i⋅(d−⌊bk​ak​⋅i​⌋+1)​​
另外,可以预处理出∀i∈[1,100000],pki,pki∗100000\forall i\in[1,100000],p_k^i,p_k^{i*100000}∀i∈[1,100000],pki​,pki∗100000​的值。则欧拉降幂后pkx=pk100000⋅a+bp_k^x=p_k^{100000\cdot a+b}pkx​=pk100000⋅a+b​
a≤100000,b≤100000a\le100000,b\le100000a≤100000,b≤100000。这样可以省掉一个快速幂。

代码:

#include<bits/stdc++.h>
#pragma GCC optimize(2)
#define ll long long
#define mod 998244353
using namespace std;
struct node
{ll p,num;node(int x,int y):p(x),num(y) {}
};
struct node1
{ll p,num,num1;
}w2[200];
struct node2
{ll sum[100001],sum1[100001];
}w3[200];
ll a,b,c,d,x,y,ans=1;
set<ll>w,w1;
set<ll>::iterator it;
map<ll,ll>ma,ma1;
int si,k=0;
int cmp(node a,node b)
{return a.num<b.num;
}
int main()
{cin>>a>>b>>c>>d>>x>>y;ll tmp=x;for(ll i=2; i*i<=tmp; i++){if(x%i==0){ll num=0;while(x%i==0){num++;x/=i;}w.insert(i),ma[i]=num;}}if(x!=1)w.insert(x),ma[x]=1;tmp=y;for(ll i=2; i*i<=tmp; i++){if(y%i==0){ll num=0;while(y%i==0){num++;y/=i;}w1.insert(i),ma1[i]=num;}}if(y!=1)w1.insert(y),ma1[y]=1;for(it=w.begin(); it!=w.end(); it++)if(w1.find((*it))!=w1.end())w2[k].p=(*it),w2[k].num=ma[(*it)],w2[k++].num1=ma1[(*it)];for(int i=0;i<k;i++){w3[i].sum[0]=w3[i].sum1[0]=1;for(int j=1;j<=100000;j++)w3[i].sum[j]=w3[i].sum[j-1]*w2[i].p%mod;w3[i].sum1[1]=w3[i].sum[100000];for(int j=2;j<=100000;j++)w3[i].sum1[j]=w3[i].sum1[j-1]*w3[i].sum1[1]%mod;}for(ll i=a;i<=b;i++){for(int j=0;j<k;j++){ll locate=w2[j].num*i/w2[j].num1;if(locate<c)ans=ans*w3[j].sum[(w2[j].num*i*(d-c+1)%(mod-1))%100000]%mod*w3[j].sum1[(w2[j].num*i*(d-c+1)%(mod-1))/100000]%mod;else if(locate>=c&&locate<=d)ans=ans*w3[j].sum[(w2[j].num1*((c+locate)*(locate-c+1)/2)%(mod-1))%100000]%mod*w3[j].sum1[(w2[j].num1*((c+locate)*(locate-c+1)/2)%(mod-1))/100000]%mod*w3[j].sum[(w2[j].num*i*(d-locate)%(mod-1))%100000]%mod*w3[j].sum1[(w2[j].num*i*(d-locate)%(mod-1))/100000]%mod;elseans=ans*w3[j].sum[(w2[j].num1*((c+d)*(d-c+1)/2)%(mod-1))%100000]%mod*w3[j].sum1[(w2[j].num1*((c+d)*(d-c+1)/2)%(mod-1))/100000]%mod;}}cout<<ans;return 0;
}

Groundhog Chasing Death相关推荐

  1. 【2020年牛客暑假第九场】E题 Groundhog Chasing Death

    [2020年牛客暑假第九场]E题 Groundhog Chasing Death 质因子分解 题意 思路 方法一:先枚举iii再枚举公共质因子 Code(286ms) 方法二:先枚举公共质因子再枚举i ...

  2. 2020牛客暑期多校训练营(第九场) Groundhog Chasing Death

    Groundhog Chasing Death 题意:给出a.b.c.d.x.y,让求下列式子. 思路:对于gcd(x,y)我们知道 gcd(x,y)=p1 ^(min(n1,n2)) * p2 ^( ...

  3. E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解)

    E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解) 链接:https://ac.nowcoder.com/acm/contest ...

  4. 牛客多校9 - Groundhog Chasing Death(质因子分解+思维)

    题目链接:点击查看 题目大意:给出 a , b , c , d , x , y ,求 题目分析:因为涉及到了 gcd 的乘积运算,那么易知不同质因子的贡献是相互独立的,首先我们就可以先将 x 和 y ...

  5. 2020牛客暑期多校训练营(第九场)E题 Groundhog Chasing Death

    题意 计算 ∏ i = a b ∏ j = c d g c d ( x i , y j ) \prod_{i=a}^{b}\prod_{j=c}^{d}gcd(x^i,y^j) i=a∏b​j=c∏d ...

  6. Groundhog Chasing (数论质因数)

    Groundhog Chasing (数论&质因数) 思路:枚举质因子贡献. 然后第一维暴力,第二维用公式求和. 第二维分三种情况: 设当前因子为 s s s, x x x的该因子个数为 c ...

  7. 2020牛客多校E- Groundhog Chasing Death

    原题 题意 求 ∏ i = a b ∏ j = c d gcd ⁡ ( x i , y j ) \prod_{i=a}^b\prod_{j=c}^d\gcd(x^i,y^j) i=a∏b​j=c∏d​ ...

  8. MT to Death,专访 ACL Fellow刘群,一个NLPer的极致表白

    导读:2022年1月6日,国际计算语言学学会ACL正式公布了2021年ACL Fellow名单,机器翻译专家.华为诺亚方舟实验室语音语义首席科学家刘群当选为全球八位新晋ACL Fellow之一. 我们 ...

  9. SOJ 8064 Whack the Groundhog

    Description You are playing the game 'Whack the Groundhog' with your little nephew. Considering your ...

  10. 【清北学堂】 死亡(death)

    M个位置可以打sif,N+1个人等着打sif,已知前N个人的时间,问第N+1个人什么时候才能打sif(不能插队,即必须按顺序来打sif) 输入N,M以及每个人所需要的时间:输出第N+1个人所需的时间 ...

最新文章

  1. 华岩资本--微生物领域项目投递通道
  2. acm之简单博弈 Nim Bash Wythoff
  3. Magento教程 10:如何修改网站文字?
  4. 【白皮书分享】2021智慧零售私域白皮书-腾讯.pdf(附下载链接)
  5. mysql 文章 字段设计_在mysql数据库中,文章表设计有啥好的思路
  6. 【Shell】按关键字查找某个字符
  7. 转:android TextView中超链接的事件捕捉(textview上LINK的点击事件)
  8. sleep方法和wait方法的区别?
  9. mysql增删改查sql语句_sql增删改查语句是什么?
  10. C++函数模板特化,类模板特化
  11. 计算机右键管理快捷键,鼠标右键菜单管理
  12. vb可以开发用c语言,c语言和vb语言的区别是什么?_后端开发
  13. uni-app中view和text组件和动画的使用
  14. 如何一步步设计前端架构?
  15. 更新驱动后重启黑屏且进不了bios时的一个解决办法
  16. 抖音、美团等大厂千万级用户的Android客户端架构演进之路—
  17. 2021-08-17
  18. 如何用sql语句对性别的 约束条件让它只能填 男 或 女
  19. IAR中map文件全解析
  20. RTSP拉流h265(hevc)+AAC关键节点详解!史上最全RTSP+hevc 交互全记录!

热门文章

  1. 全国2012年1月高等教育考试
  2. 高保真设计软件介绍及推荐
  3. Sping AOP 源码解析(一、动态 AOP 自定义标签 aop:aspectj-autoproxy)
  4. python计算方差膨胀因子_可决系数R^2和方差膨胀因子VIF
  5. Java中易混淆问题总结
  6. Win10红警如何关闭3d加速?
  7. 中兴力维动环监控接线图_肖东晖:动环是基本点 视频监控是增长点
  8. 三层交换机配置实现不同网络互通
  9. android手机电池寿命,真正有效延长手机电池寿命的几点建议(iPhone+安卓)
  10. BZOJ 1951 古代猪文 鲁卡斯定理+费马小定理+中国剩余定理