文章目录

  • [题目链接:E_Groundhog Chasing Death](https://ac.nowcoder.com/acm/contest/5674/E)
    • 题目大意
    • 解题思路
    • 代码

题目链接:E_Groundhog Chasing Death

题目大意

这一道裸的数论题,题意就不省略了。

解题思路

我们可以对 x和yx和yx和y 进行质因子分解,经过化简我们可以得到下面这个公式
p∑i=ab∑j=cdmin(i∗n,j∗m)p^{\sum_{i=a}^{b} \sum_{j=c}^{d} min(i*n,j*m)}p∑i=ab​∑j=cd​min(i∗n,j∗m)
其中p为x和y的公共质因子个数,n和m分别表示x和y中分别有几个其中p为x和y的公共质因子个数,n和m分别表示x和y中分别有几个其中p为x和y的公共质因子个数,n和m分别表示x和y中分别有几个
其中对于统计指数的个数的时候可以根据 n∗in*in∗i 的大小去处理 mmm。
很明显只有存在相同质因子的时候需要统计下该质因子的指数就可以。
注意的是根据费马小定理对指数取模的时候应该是%(mod−1)\ \%(mod-1) %(mod−1)

代码

/**/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll mx=2000100;
const ll mod=998244353;
map<int,ll>mp;
ll a,b,c,d,ans=1;
ll poow(ll A,ll B){ll res=1;while(B){if(B&1) res=res*A%mod;A=A%mod*A%mod;B>>=1;}return res%mod;
}
// x表示 x中p的个数 y表示y中p的个数
void ji_suan(ll x,ll y,ll p){ll sum=0;ll cnt;for(ll i=a;i<=b;i++){ll tem=x*i;
// 确定多少个 y以内 都是 现在的 x*i 大,
// 到时候只用求 关于 y 的前 ty 项和就可以      ll ty=tem/y; ll flag=0;cnt=0;
// 如果 ty 小于 c 说明求和的时候 一直都是 x*i 小        if(ty<c) flag=1; if(ty>=c){// 计算 ty 的前 n 项和// 为了防止 ty 大于 d 的情况需要取两者的最小值 ll bb=min(ty,d);   cnt=y*(c+bb)*(bb-c+1)/2%(mod-1);}// 记录指数的个数 sum=(sum+cnt)%(mod-1);cnt=0;if(ty<=d){// 这里为了防止 ty 下于 c   所以去最大值  ty=max(ty,c);cnt=tem*(d-ty+flag)%(mod-1);sum=(sum+cnt)%(mod-1);    }}// 记录答案 ans=ans*poow(p,sum)%mod;
}
int main(){ ios::sync_with_stdio(0);ll x,y;cin>>a>>b>>c>>d>>x>>y;//先对 x 进行质因子分解并且记录每个质因子的个数 for(ll i=2;i*i<=x;i++){while(x%i==0){mp[i]++;x/=i;}}if(x!=1) mp[x]++;int num;bool f;for(ll i=2;i*i<=y;i++){num=0;f=0;if(y%i==0) f=1;while(y%i==0){num++;y/=i;}
// 对 y 进行质因子分解,如果有相同的因子的话
// 就进行判断。       if(mp[i]&&f){ji_suan(mp[i],num,i);}}if(y!=1&&mp[y]){ji_suan(mp[y],1,y);}cout<<ans<<"\n";return 0;
}

E_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. 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​ ...

  7. Groundhog Chasing (数论质因数)

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

  8. 51nod1238. 最小公倍数之和 V3(数论)

    题目链接 https://www.51nod.com/Challenge/Problem.html#!#problemId=1238 题解 本来想做个杜教筛板子题结果用另一种方法过了...... 所谓 ...

  9. Ping of Death:速修复 TCP/IP RCE 漏洞 CVE-2020-16898

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 微软十月补丁星期二共修复了87个漏洞,其中11个是"严重"级别.CVE-2020-16898 和 CVE-2020 ...

  10. (数论)[SDOI2008]沙拉公主的题目描述

    [SDOI2008]沙拉公主的题目描述 (^ w ^) 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大 ...

最新文章

  1. [转载]树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像...
  2. 一个简单视频网站开发小记
  3. Linux acl权限
  4. TCP/IP总结(3)数据包
  5. spring boot使用freemarker页面获取系统路径最简配置
  6. gj7 对象引用、可变性和垃圾回收
  7. Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)
  8. python面向过程实践汉诺塔_递归汉诺塔-和递归汉诺塔相关的内容-阿里云开发者社区...
  9. Ubuntu18.04下编译tslib触摸屏驱动
  10. SpringBoot入门-统一错误码
  11. R语言开发之输出散点图
  12. python字符串format方法参数解释,一文秒懂!Python字符串格式化之format方法详解
  13. 自己动手搭建Fabric网络,修改当前工作目录名之后出现的错误
  14. 开源网络压测工具dperf登上了github C语言趋势榜
  15. 使用少量数据去除神经网络中的水印 -- WILD
  16. 【线性代数】第六章——二次型
  17. 植物的生长与模拟之一:概述
  18. 当我不再依赖你的时候说说_关于依赖一个人的说说
  19. 2021年实验中学高考成绩查询,绵阳市实验高级中学2021年排名
  20. 在大型超市引进自助收银系统有什么好处有利的呢?

热门文章

  1. 【优化选址】基于遗传算法进行厂区布置优化附matlab代码
  2. 38年来,NBA最有价值球员|数据分析
  3. mybatis mysql连接时区_MySQL时区的查看和设置
  4. win10无法访问linux共享服务器,Win10无法访问NAS或Linux网络共享的处理方法
  5. 基于VUE和Node.js的医院挂号预约管理系统
  6. keil5编写C51程序
  7. python爬取电影评分_python爬取豆瓣电影排行榜(requests)的示例代码
  8. FinalShell Mac OS版安装
  9. Java之美[从菜鸟到高手演变]之Java学习方法
  10. 天梯赛题目练习——高速公路超速处罚(附带测试点)