HDU6069---Counting Divisors(2017多校联赛:数学)
来源:互联网 发布:淘宝打假部门联系方式 编辑:程序博客网 时间:2024/06/06 12:31
【题目来源】:http://acm.hdu.edu.cn/showproblem.php?pid=6069;
【题意】
求所示式子的答案。
【思路】
这道题对于我挺绕的,当时比赛的时候想了一二十分钟,想了出来,但是实现的时候由于代码水平有限,以至于今天打了一遍过了,依旧找不出昨天的错误,思路基本和题解一致,用到了几个数论小知识,比如:求一个数的所有因子的数目可以通过素数的次幂进行相乘求解,然后就是一个模拟了。
【代码】
//先统计素因子数目,记录,最后相加。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const int maxn=1e6+10;const int mod=998244353;LL prime[maxn];bool check[maxn];LL p[maxn],q[maxn];LL l,r,k;int tot;void pri(){ check[1]=1; for(int i=2; i<maxn; i++) { if(!check[i])prime[tot++]=i; for(int j=0; j<tot&&i*prime[j]<maxn; j++) { check[i*prime[j]]=1; if(i%prime[j]==0)break; } }}int main(){ int T; tot=0; pri(); scanf("%d",&T); while(T--) { scanf("%lld%lld%lld",&l,&r,&k); for(int i=0;i<=r-l;i++) { p[i]=l+i; q[i]=1; } for(int i=0; i<tot; i++) { if(prime[i]*prime[i]>r) break; LL L=l/prime[i]; LL j=prime[i]*(L+(l%prime[i]!=0)); for(;j<=r;j+=prime[i]) { int tmp=0; while(p[j-l]%prime[i]==0) { tmp++; p[j-l]/=prime[i]; } q[j-l]*=(k*tmp+1); q[j-l]%=mod; } } LL sum=0; for(LL i=l; i<=r; i++) { if(p[i-l]!=1) { q[i-l]*=(k+1); if(q[i-l]>=mod) q[i-l]%=mod; } sum+=q[i-l]; if(sum>=mod) sum%=mod; } printf("%lld\n",sum); }}
阅读全文
0 0
- HDU6069---Counting Divisors(2017多校联赛:数学)
- hdu6069 Counting Divisors(数学)
- HDU6069 Counting Divisors【数学】
- Counting Divisors(hdu6069)
- (hdu6069)2017杭电多校联赛第四场-Counting Divisors 因子个数求和(数论)
- HDU6069多校第四场 Counting Divisors
- 2017多校训练Contest4: 1003 Counting Divisors hdu6069
- Hdu6069 Counting Divisors(2017多校第4场)
- HDU 6069 Counting Divisors 【2017多校联赛4】
- hdu 多校联赛 Counting Divisors
- HDU6069 Counting Divisors(区间素数筛)
- HDU6069-Counting Divisors(约数个数定理)
- HDU6069 Counting Divisors
- hdu6069 Counting Divisors
- HDU6069-Counting Divisors
- hdu6069 Counting Divisors
- hdu6069 Counting Divisors && lightoj1028
- 17暑假多校联赛4.3 HDU 6069 Counting Divisors
- React-Native-动画基础-抽奖转盘
- Linux 常用命令(二)
- HDU1166树状数组
- struts2框架学习笔记03
- 编程语言—专业词汇理解
- HDU6069---Counting Divisors(2017多校联赛:数学)
- 终于在开发中用到自己的继承了、多态了
- linux 密码设置问题
- 迭代list,map
- 微信公众开发初始化菜单40017
- hdu3123--阶乘和的处理方法
- 地球坐标,火星坐标,百度坐标转换
- Subline text3 配置java程序编译运行在subline控制台环境和windows控制台
- 前后端数据交互 ---- 跨域请求