POJ 1845 Sumdiv 【二分 || 逆元】

自托管AI邮件助手imap-mcp:安全连接Claude与个人邮箱的完整指南 在AI助手日益普及的今天,如何安全地让AI访问个人邮箱数据成为关键挑战。传统方法如直接暴露IMAP/SMTP凭证存在严重安全隐患,而第三方SaaS服务则涉及隐私泄露风险。Model Context Protocol (MCP) 作为一种新兴的标准化协议,为AI工具安全接入提供了解决方案。其核心价值在于实现数据源与AI助手间的安全、标准化交互,特别适用于处理敏感信息的场景。imap-mcp正是基于MCP协议构建的自托管邮件网关,它通过多层安全机制(包括主密钥加密和OAuth令牌哈希化)保护用户凭证,让用户能在 阅读详情

任意门:http://poj.org/problem?id=1845、

Sumdiv

Time Limit: 1000MS

 

Memory Limit: 30000K

Total Submissions: 30268

 

Accepted: 7447

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). 

Source

 

 

题目概括:

给出 A 和 B ,求 AB 所有因子之和,答案 mod 9901;

 

解题思路:

可对 A 先进行素因子分解 A = p1a1 * p2a2 * p3a3 * ...... * pnan

即 AB = p1a1*B * p2a2*B * p3a3*B * ...... * pnan*B

那么 AB 所有因子之和 = (1 + P11 + P12 + P13 + ... + P1a1*B) *  (1 + P21 + P22 + P23 + ... + P2a2*B) * ......* (1 + Pn1 + Pn2 + Pn3 + ... + Pnan*B) ;

 

对于  (1 + P1 + P2 + P3 + ... + Pa1*B) 我们可以

①二分求和 (47 ms)

AC code:

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <cstring>
 4 #include <algorithm>
 5 #include <cmath>
 6 #define INF 0x3f3f3f3f
 7 #define LL long long
 8 using namespace std;
 9 const LL MOD = 9901;
10 const int MAXN = 1e4+10;
11 LL p[MAXN];
12 bool isprime[MAXN];
13 int cnt;
14 LL A, B;
15 
16 void init()                               //打表预处理素因子
17 {
18     cnt = 1;
19     memset(isprime, 1, sizeof(isprime));
20     for(LL i = 2; i < MAXN; i++){
21         if(isprime[i]){
22             p[cnt++] = i;
23             for(int j = 1; j < cnt && p[j]*i < MAXN; j++)
24                 isprime[p[j]*i] = false;
25         }
26     }
27 }
28 
29 LL qpow(LL x, LL n)
30 {
31     LL res = 1LL;
32     while(n){
33         if(n&1) res = (res%MOD*x%MOD)%MOD;
34         x = (x%MOD*x%MOD)%MOD;
35         n>>=1LL;
36     }
37     return res;
38 }
39 
40 LL sum(LL x, LL n)
41 {
42     if(n == 0) return 1;
43     LL res = sum(x, (n-1)/2);
44     if(n&1){
45         res = (res + res%MOD*qpow(x, (n+1)/2)%MOD)%MOD;
46     }
47     else{
48         res = (res + res%MOD*qpow(x, (n+1)/2)%MOD)%MOD;
49         res = (res + qpow(x, n))%MOD;
50     }
51     return res;
52 }
53 
54 int main()
55 {
56     LL ans = 1;
57     scanf("%lld %lld", &A, &B);
58     init();
59     //printf("%d\n", cnt);
60     for(LL i = 1; p[i]*p[i] <= A && i < cnt; i++){          //素因子分解
61         //printf("%lld\n ", p[i]);
62         if(A%p[i] == 0){
63             LL num = 0;
64             while(A%p[i] == 0){
65                 num++;
66                 A/=p[i];
67             }
68             ans = ((ans%MOD*sum(p[i], num*B)%MOD)+MOD)%MOD;
69         }
70     }
71     if(A > 1){
72        // puts("zjy");
73         ans = (ans%MOD*sum(A, B)%MOD+MOD)%MOD;
74     }
75 
76     printf("%lld\n", ans);
77 
78     return 0;
79 }
View Code

 

②应用等比数列求和公式 ( 0ms )

因为要保证求模时的精度,所以要求逆元。

这里用的方法是一般情况都适用的 : A/B mod p = A mod (p*B) / B;

但是考虑乘法会爆int,所以自定义一个二分乘法。

AC code:

 1 // 逆元 + 二分乘法
 2 #include <cstdio>
 3 #include <iostream>
 4 #include <cmath>
 5 #include <algorithm>
 6 #include <cstring>
 7 #define INF 0x3f3f3f3f
 8 #define LL long long
 9 using namespace std;
10 const int MAXN = 1e4+10;
11 const LL mod  = 9901;
12 int p[MAXN], cnt;
13 bool isp[MAXN];
14 LL A, B;
15 
16 void prime()
17 {
18     memset(isp, 1, sizeof(isp));
19     isp[0] = isp[1] = false;
20     for(int i = 2; i < MAXN; i++){
21         if(isp[i]){
22             p[cnt++] = i;
23             for(int k = 0; k < cnt && i*p[k] < MAXN; k++){
24                 isp[i*p[k]] = false;
25             }
26         }
27     }
28 }
29 
30 LL mutil(LL x, LL y, LL MOD)
31 {
32     LL res = 0;
33     while(y){
34         if(y&1) res = (res+x)%MOD;
35         x = (x+x)%MOD;
36         y>>=1LL;
37     }
38     return res;
39 }
40 
41 LL q_pow(LL x, LL n, LL MOD)
42 {
43     LL res = 1LL;
44     while(n){
45         if(n&1) res = mutil(res, x, MOD)%MOD;
46         x = mutil(x, x, MOD)%MOD;
47         n>>=1LL;
48     }
49     return res;
50 }
51 
52 int main()
53 {
54     LL num = 0;
55     LL ans = 1;
56     scanf("%lld %lld", &A, &B);
57     prime();
58     for(int i = 0; p[i]*p[i] <= A; i++){
59         if(A%p[i] == 0){
60             num = 0;
61             while(A%p[i] == 0){
62                 A/=p[i];
63                 num++;
64             }
65             LL m = mod*(p[i]-1);
66             ans *= (q_pow(p[i], num*B+1, m) + m-1)/(p[i] - 1);
67             ans = ans%mod;
68             //ans += ((q_pow(p[i], num*B, mod*(p[i]-1))-p[i])/(p[i]-1))%mod;
69         }
70     }
71 
72     if(A != 1){
73 //        ans += ((q_pow(A, B, mod*(A-1))-A)/(A-1))%mod;
74         LL m = mod*(A-1);
75         ans*=(q_pow(A, B+1, m)+m-1)/(A-1);
76         ans = ans%mod;
77     }
78 
79     printf("%lld\n", ans);
80 
81     return 0;
82 }
View Code

 

 

 

 

11.8 LangGraph生产级AI Agent开发:从节点定义到高并发架构的终极指南 本文介绍了如何使用 LangGraph 构建生产级 AI Agent,重点解析了 LangGraph 的核心设计、节点与边的实现方法论、生产级实现技巧以及性能优化策略。LangGraph 通过图结构抽象复杂 AI 工作流,核心组件包括节点、边、状态和检查点。节点通过 Python 函数封装原子业务逻辑,边通过条件分支实现动态工作流。生产级实现技巧包括状态管理、多会话控制和错误处理机制。性能优化策略涉及并行执行和缓存机制设计。文章还提供了旅行规划 Agent 的实战案例和常见问题解决方案,帮助开发者构建高效、 阅读详情

相关推荐

推荐算法之Thompson(汤普森)采样

如果想理解汤普森采样算法,就必须先熟悉了解贝塔分布。 一、Beta(贝塔)分布 Beta分布是一个定义在[0,1]区间上的连续概率分布族,它有两个正值参数,称为形状参数,一般用α和β表示,Beta分布的概率密度函数形式如下: 这里的Γ表示gamma函数。 Beta分布的均值是: 方差: ...

weixin_30508241的博客 4259

POJ 1845:Sumdiv 快速幂+逆元

Sumdiv Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16466   Accepted: 4101 Description Consider two natural numbers A and B. Let S be the sum of all nat

3510

端到端自动驾驶:特斯拉FSD Beta技术拆解

端到端自动驾驶:特斯拉FSD Beta技术拆解 ,人工智能,计算机视觉,大模型,AI,这篇文章围绕特斯拉FSD Beta的端到端自动驾驶技术展开,先介绍端到端自动驾驶的定义、与传统方案的区别及FSD Beta的特点,再阐述其硬件基础、技术架构,解析关键技术,还涉及训练数据与标注、安全与冗余设计、实际应用场景与挑战以及技术迭代与更新等内容,展现了该技术的多方面情况。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 18万+

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

9.20华为OD机试真题 新系统 - 字符串分组求和 (Java/Py/C/C++/Js/Go)

9.20华为OD机试真题 新系统 - 字符串分组求和 (Java/Py/C/C++/Js/Go)

算法大师! 593

Unity 面试篇|(三)设计模式篇 【全面总结 | 持续更新 | 建议收藏】

设计模式是一套被反复使用、多数人知晓、经过分类编目、代码设计经验的总结。设计模式与方法或库的使用方式不同, 你很难直接在自己的程序中套用某个设计模式。模式并不是一段特定的代码, 而是解决特定问题的一般性概念。你可以根据模式来实现符合自己程序实际所需的解决方案。常常会混淆模式和算法, 因为两者在概念上都是已知特定问题的典型解决方案。但算法总是明确定义达成特定目标所需的一系列步骤, 而模式则是对解决方案的更高层次描述。同一模式在两个不同程序中的实现代码可能会不一样。单例模式。

游戏开发小Y的博客 12万+

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

风电光伏功率预测竞赛精华总结:技术解析与实战经验

本文深度解析新能源功率预测竞赛的技术要点与实战经验。首先介绍了风电、光伏功率预测对电网调度优化、降低运营风险的重要性,以及多个竞赛的基本概况。在数据特征分析部分,详细探讨了气象预报数据和功率数据的特征,包括时间周期性、数据质量问题及处理方法。针对异常值检测、数据标准化和特征工程(如时间特征、统计聚合特征、风速风向特征和滞后特征)提供了具体的技术实现方案。文章为新能源功率预测提供了实用的技术指导,对相关竞赛和实际应用具有重要参考价值。

算法工程师 206

【简●解】POJ 1845 【Sumdiv】

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

weixin_30429201的博客 163

5-EP4CE10F17C8-引脚配置

EP4CE10F17C8-引脚配置

weixin_44479192的博客 720

《QT+PCL》点云配准进阶——GROR配准

GROR点云配准

阁楼 1318

[POJ]P1845 Sumdiv

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

Myka1991的博客 206

Open3D 点到面的ICP配准算法【2025最新版】

点到面的ICP(python版本)博客长期更新,本文最近一次更新时间为:2025年2月2日,代码已更新至Open3D 0.18.0版本。

点云侠的博客 38万+

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

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

POJ 1845 Sumdiv(逆元+快速幂)

Sumdiv Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18877   Accepted: 4745 Description Consider two natural numbers A and B. Let S be the sum of all

想飞的小菜鸡 568

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

poj 1845 Sumdiv(二分递归求等比数列+素因子分解)

题目:http://poj.org/problem?id=1845 Sumdiv Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16348   Accepted: 4075 Description Consider two natural numbe

theArcticOcean 1051

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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——杨子曰题目

【POJ1845】Sumdiv——杨子曰题目 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 conta...

杨子曰:代码是神奇的 377

POJ 1845 Sumdiv 解题报告(二分 & 逆元)

题目大意:求A^B 所有因数和。     解题报告:公式就不推了,这个链接有详细的推理过程:http://blog.youkuaiyun.com/lyy289065406/article/details/6648539     可以使用二分来求(p^0+p^1+p^2+……+p^n),道理也很简单前一半乘以p^(n/2)就等于后一般,注意奇偶就好了。二分比较好想到,也容易实现,但是用逆元可以更快的求解。

SF-_- 的 ACM 博客 1182

【题解】POJ1845 Sumdiv(乘法逆元+约数和)

POJ1845:http://poj.org/problem?id=1845 思路: AB可以表示成多个质数的幂相乘的形式:AB=(a1n1)*(a2n2)* ...*(amnm) 根据算数基本定理可以得约数之和sum=(1+a1+a12+...+a1n1)*(1+a2+a22+...+a2n2)*...*(1+am+am2+...+amnm) mod 9901 对于每个...

184

POJ 1845 Sumdiv 题解

其中幂运算可以用快速幂来解决。这时候我们就可以引入分治法来解决问题。1.POJ 不支持万能头和 auto。3.建议配合 map 食用质因数分解。进行质因数分解,可以得到。而言它的质因数分解应该是。不是质数,所以不能求逆元。都是一个等比数列,但是。2.在分解质因数时只能用。全部的因数之和应该是。的复杂度,不可偷懒。

qq_61755102的博客 1358

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

Sumdiv POJ - 1845(快速幂+逆元)

问题虫洞: Sumdiv POJ - 1845 黑洞内窥: 给出A, B,, 求A^B的所有约数之和 sum mod 9901 思维光年: 首先我们要明确三个定理: (1) 整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式。 A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn) 其中pi均...

浦柳人的博客 385

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. 题目大意:给定AAA和BBB,求ABA^BAB的约数和,答案对990199019901取模. 设n=∏i=1kpicin=\prod_{i=1}^{k}p_i^{c_i}n=∏i=1k​pici​​,则nnn的约数和为: σ(n)=∏i=1k∑j=0cipij \sigma(n)=\prod_{i=1}^{k}\sum_{j=0}^{c_i}p_i^{j} σ(n)=i=1...

hzk_cpp的博客 329
上一篇: Codeforces Round #538 (Div. 2) D. Flood Fill 【区间dp || LPS (最长回文序列)】
下一篇: HDU 4676 Sum Of Gcd 【莫队 + 欧拉】
莜莫oO
博客等级 码龄9年 7粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值