poj 1845 Sumdiv

RK3568笔记十七:LVGL v8.2移植 若该文为原创文章,转载请注明原文出处。本文介绍嵌入式图形库移植到Linux开发板ATK-RK3568上的步骤。 阅读详情
Sumdiv
Time Limit: 1000MS Memory Limit: 30000K
Total Submissions: 19529 Accepted: 4916

Description

Consider two natural numbers A and B. Let S be the sum of all natural divisors of A^B. Determine S modulo 9901 (the rest of the division of S by 9901).

Input

The only line contains the two natural numbers A and B, (0 <= A,B <= 50000000)separated by blanks.

Output

The only line of the output will contain S modulo 9901.

Sample Input

2 3

Sample Output

15

Hint

2^3 = 8. 
The natural divisors of 8 are: 1,2,4,8. Their sum is 15. 

15 modulo 9901 is 15 (that should be output). 


题目大意:求A^B所有约数之和

思路: 
由于乘性函数的性质 
题目等价于求(1+a1+a1^2+a1^3+a1^4+.....+a1^(b1k)) *(1+a2+a2^2+a2^3+a2^4+......+a2^(b2k))+......
=s1*s2*s3......*sn
根据等比数列求和易知
(1-an^(bnk+1))/1-an
an为约数,bn为该约数的个数 

由于出现除法取模,需要求逆元,记得讨论逆元不存在,逆元存在当且仅当gcd(x,MOD)==1

代码如下:

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
const LL maxn=100005;
const LL MOD=9901;
LL a[maxn],b[maxn];
LL quickpow(LL n,LL m)
{
	n%=MOD;
	if(n==0)return MOD-1;
	if(n==1)return 0;
	LL ans=1;
	while(m)
	{
		if(m&1)ans*=n,ans%=MOD;
		m>>=1;
		n*=n,n%=MOD;
	}
	ans=(ans%MOD+MOD)%MOD;
	return ans-1;
}
LL getfac(LL n)
{
	LL index=0;
	for(int i=2;i*i<=n;i++)
	{
		while(n%i==0&&n)b[index]++,n/=i;
		if(b[index])a[index++]=i;
	}
	if(n>1)b[index]++,a[index]=n,index++;
	return index;
}
LL x,y;
long long exgcd(long long a, long long b, long long &x, long long &y)
{
	if (a == 0){
		x = 0;
		y = 1;
		return b;
	}
	else
	{
		long long tx, ty;
		long long d = exgcd(b%a, a, tx, ty);
		x = ty - (b / a)*tx;
		y = tx;
		return d;
	}
}
int main()
{
	LL A,B;
	LL index=0;
	while(cin>>A>>B)
	{
		memset(b,0,sizeof(b));
		LL cnt=getfac(A),ans=1;
		for(int i=0;i<cnt;i++)
		{
			//if(a[i]%MOD==0)continue;
			if(a[i]%MOD==1){ans=ans*(b[i]*B+1),ans%=MOD;continue;}
			LL L=quickpow(a[i],b[i]*B+1);
			exgcd(a[i]-1,MOD,x,y);
			LL R=x;
			L=((L%MOD)+MOD)%MOD;
			R=((R%MOD)+MOD)%MOD;
			ans*=((L*R)%MOD+MOD)%MOD,ans%=MOD;
		}
		ans=((ans%MOD)+MOD)%MOD;
		cout<<ans<<endl;
	}
}

基于VLFM的中文指令视觉语言导航系统设计与实现 文章摘要 本文介绍了一个基于VLFM(视觉语言边界地图)的中文指令视觉语言导航系统设计与实现。该系统采用模块化架构,包含三维场景渲染、URDF机器人仿真、VLFM导航引擎、中文指令解析和PyQt图形界面五大核心模块。系统支持自定义GLB场景模型和URDF机器人模型,通过transformers和langchain实现中文自然语言指令解析,利用VLFM算法进行语义导航决策。技术实现上详细介绍了GLB模型加载器开发、URDF机器人控制、VLFM导航算法集成以及PyQt界面设计。该系统在Ubuntu环境下运行,依 阅读详情

相关推荐

Matlab激活失败?手把手教你解决License checkout failed问题(附详细截图)

本文针对Matlab激活后出现“License checkout failed”错误的常见问题,提供了详细的解决方案。核心在于精准定位并正确填写Windows系统用户名,而非计算机名或账户全名。文章通过分步截图和命令指引,手把手教你使用`whoami`命令获取正确信息,并重新运行激活程序,从根本上解决因用户名填写错误导致的许可检查失败问题。

weixin_29062823的博客 574

POJ1845 Sumdiv 递归

题目链接 http://poj.org/problem?id=1845 分析 将 AAA 分解质因数为 p1c1∗p2c2∗...∗pncnp_1 ^ {c_1} * p_2 ^ {c_2} * ... * p_n ^ {c_n}p1c1​​∗p2c2​​∗...∗pncn​​,则 ABA ^ BAB 为 p1B∗c1∗p2B∗c2∗...∗pnB∗cnp_1 ^ {B * c_1} * p_2...

Kevin的博客 295

Chromatix_AEC—深入解析曝光表配置与传感器参数计算

本文深入解析高通Chromatix AEC模块中的曝光表配置与传感器参数计算,详细介绍了自动曝光控制(AEC)的核心概念、首行曝光时间计算、行时间与曝光模式对比、帧率计算逻辑以及曝光表高级配置技巧。通过实战案例展示如何优化传感器参数联调,帮助开发者掌握Chromatix工具在摄像头系统中的关键应用。

266

【简●解】POJ 1845 【Sumdiv】

POJ 1845 【Sumdiv】 【题目大意】 给定\(A\)和\(B\),求\(A^B\)的所有约数之和,对\(9901\)取模。 (对于全部数据,\(0<= A <= B <=50,000,000\)) 【样例输入】 2 3 【样例输出】 15 【算法关键词】 数论 综合模板 二分,乘法逆元 【题解】 不管什么题首先思考的肯定是暴力解法。起码可以骗分啊,当然,如果能一...

weixin_30429201的博客 163

COLMAP生成MVSNet数据集

COLMAP生成MVSNet数据集

qq_43307074的博客 5637

用VSCode远程开发Jetson小车:告别Jupyter,在本地IDE高效调试Rosmaster Python程序

本文详细介绍了如何利用VSCode的Remote-SSH扩展在本地IDE中高效开发Jetson小车的Rosmaster Python程序。通过配置远程开发环境、调试技巧和项目管理方法,开发者可以告别Jupyter Notebook的碎片化编码,实现完整的机器人控制程序开发,显著提升工作效率。

weixin_30652491的博客 477

poj 1845 POJ 1845 Sumdiv 数学模板

筛选法+求一个整数的分解+快速模幂运算+递归求计算1+p+p^2+````+p^nPOJ 1845 Sumdiv求A^B的所有约数之和%9901 */#include<stdio.h>#include<math.h>#include<iostream>#include<algorithm>#include<string.h>u...

dianche1354的博客 157

python使用TensorRT报错,多线程或多进程中使用问题

python使用TensorRT报错,Cuda Runtime问题

qq_44224801的博客 747

POJ 1845 Sumdiv 【二分 || 逆元】

任意门:http://poj.org/problem?id=1845、 Sumdiv Time Limit:1000MS Memory Limit:30000K Total Submissions:30268 Accepted:7447 Description Consider...

weixin_30376453的博客 130

跨平台也要跑得像原生一样顺:SAP GUI for Java 的安装、配置、运维与自动化实战

摘要:SAP GUI for Java 作为跨平台客户端解决方案,在 S/4HANA 时代仍发挥关键作用,特别适用于 macOS/Linux 环境下的 ABAP 开发和系统运维。其主要优势包括:平台无关性(支持 Windows/macOS/Linux/UNIX)、与 Windows 版本一致的交互体验、对核心事务码(如 ST22/SM21)的完整支持。版本管理需注意 7.80 已停止支持,建议升级至 8.10。安装支持原生包和通用 JAR 两种方式,推荐团队标准化版本和连接配置(通过 SAP UI Land

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 678

Labview界面多按钮控件的一种处理方法

当界面中存在多个按钮控件时候,此时如果逐个为每个控件添加事件条件则会显得较为麻烦,此处提供了一种对多控件进行批量处理的方法

miracleis的博客 2703

POJ1845 Sumdiv - 乘法逆元+快速幂【A^B的约数个数和】

POJ1845 Sumdiv Sol: 约数个数和\(sumdiv=(1+p_1+p_1^2+\dots + p_1^{c_1})*\dots *(1+p_k+p_k^2+\dots + p_k^{c_k})\) 其中每一项都是一个首项为1,公比为\(p_i\)的等比数列的和,即 \(1*\frac{1-p_i^{c_{k}+1}}{1-p_i}=\frac{p_i^{c_{k}+1}-...

dmqqndlx85675的博客 194

图解电动汽车:电动汽车主要参数

动力性指标 汽车的动力性指标主要有最高车速、加速时间、最大爬坡等,体现了汽车在行驶过程中能达到的极限运动水平。对于电动汽车,其动力性由搭载的驱动电动机决定,主要的参数包括最大扭矩、额定功率、最大功率、最大转速等。 功率是指物体在单位时间内所做的功的多少,是描述做功快慢的物理量,单位是 kW。 扭矩是指机械元件转动的力矩,也称转矩,表示转动力量的大小,单位是 N·m。 转速是指发动机/电动机的转速,的单位是 rpm,即转每分钟。额定转速是指在额定功率下电动机的转速,最大转速则是在最大功率下电动机的转速。

程序员「阿基米东」的编程之旅 2万+

POJ 1845 Sumdiv【唯一分解定理+快速幂+分治法(不用逆元)】

题目传送门: POJ 1845 Sumdiv 思路 题意很简单,求x的y次方这个数的因子和对9901取模的值。 首先我们知道,要求一个数的因子和,先要把它分解质因数,得到它的所有素因子(唯一分解定理如下) 假设 x 素因子分解后是p1c1+p2c2+…+pncn 则 xy 素因子分解后是p1c1*y+p2c2*y+…+pncn*y=(1+p11+…+p1c1*y)*…*(1+pn1+…+pncn...

nefu_ljw的博客 1768

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Sumdiv poj 1845

Sumdiv poj 1845 等比数列求和并取模,非逆元方法 const int M = 9901; long long qpow(long long a,long long b) { a %= M; long long ans = 1; while(b...

weixin_30394633的博客 121

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

POJ 1845 Sumdiv(逆元、分治)【真心好题啊=_=】

题目链接: POJ 1845 Sumdiv 题意: 给出A和B,求A^B的所有因子和对990取余后的值。0<= A, B <= 50000000. 分析: 特判A=1,A=0,B=0的情况,根据任何一个大于1的自然数若其不为素数则必可唯一的分解为有限个素数的乘积。 假设A = p1^a1 * p2^a2 * p3^a3 * ... * pn^an,其中(p1,p2,p3,...,pn均为

ramay7 610

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

[POJ]P1845 Sumdiv

原题链接:P1845 Sumdiv 题意 给定$A,B$,求$A^B$对9901取模的值。 分析 先说说我的第一思路:模数是很小的,完全可以开一个桶放下所有的幂次方。 所以我们可以把每个数分解质因数了,然后把每个质数的所有幂次方装进桶里。 然后我们从$1$到$9901$枚举每一位,同时统计他们的个数积,最后答案加上(个数积$\times$幂次方积)就可以了。。 发现时...

Myka1991的博客 206

POJ---1845:Sumdiv【因数和定理】

题意: 求 A^B 的所有约数和,输出结果 mod 9901 分析: 约数和定理: A^B 的质因子无非是A的每个质因子的个数扩大了B倍,直接套公式,等比数列求和有: ,模数太小,pi - 1可能和9901不互质,就不能通过逆元来求,下面给出两种解法: 求解: (1) 上面公式仅在 b|a 时成立,我们可以反向验证这个公式 设 x = a / b,则 a = b ...

KobeDuu 518

poj1845 Sumdiv

题目链接:http://poj.org/problem?id=1845 题目大意: 输入A和B,计算的所有因子之和为s,输出s%9901. 解题思路: 对A进行素因子分解,,则,所有的因子和为: ,再计算s%9901. 每项求分子时用快速幂取模,处理分母时,9901是素数,除法取模求逆元。 ac代码: #include<iostream> #define mod 99...

qq_41515833的博客 195

POJ 1845 Sumdiv

题目链接:http://poj.org/problem?id=1845 题意:给出A,B两个整数(0 Sample Input 2 3 Sample Output 15 Hint 2^3 = 8. The natural divisors of 8 are: 1,2,4,8. Their sum is 15. 15 modulo 9901 is 15 (that should be

Fistice的博客 324

POJ1845:Sumdiv

题目:Sumdiv 题解:先用质因子分解 A = p1a1 p2a2 p3a3…pnan (p1,p2,p3…为质数) AB = p1a1B p2a2B p3a3B…pnanB (p1,p2,p3…为质数) 所求的就是(p10+…+p1a1B)(p20+…+p2a2B),所以这个就需要用到等比数列求和公式了 这时候需要对(1-q)求逆元,但不能保证它们互质,所以不能单纯的使用扩展...

多一些不为什么的坚持 533

POJ1845 Sumdiv【快速模幂+素因子分解+等比数列+二分法】

问题链接:POJ1845 Sumdiv。 问题简述:参见上述链接。 问题分析:计算a^b的因子数,首先要对a进行因子分解,然后再进行计算。 程序说明:计算过程中用到了快速模幂函数。 题记:(略) AC的C++语言程序如下: /* POJ1845 Sumdiv */ #include using namespace std; const int MOD =

海岛Blog 1052

poj 1845 Sumdiv (算术基本定理求一个数因子和)

求一个数的所有因子和可以用算术基本定理,下面是它的两个重要应用:         (1)一个大于1的正整数N,如果它的标准分解式为: N=(P1^a1)*(P2^a2)......(Pn^an)             那么它的正因数个数为(1+a1)(1+a2).....(1+an)。         (2) 它的全体正因数之和为d(N)=(1+p1+...p1^an)(1+p2+...p

crazy__C的专栏 976

POJ 1845.Sumdiv

题目:http://poj.org/problem?id=1845 AC代码(C++): #include #include #include #include #include #include #include #include #include #define INF 0xfffffff #define MAXN 100105 using namespa

njyexiong的博客 235
上一篇: 积性函数
下一篇: hdu2222 Keywords Search(AC自动机模板题)
overload1997
博客等级 码龄11年 328粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值