<更新提示>

<第一次更新>


<正文>

sumdiv(POJ 1845)

Description

给定两个自然数A和B,S为A^B的所有正整数约数和,编程输出S mod 9901的结果。

Input Format

只有一行,两个用空格隔开的自然数A和B(0<=A,B<= 50000000)。

Output Format

只有一行,即S mod 9901的结果。

Sample Input

2 3

Sample Output

15

解析

这是一道数学推导+分治的简单运用,大体思路如下。

由算数基本定理可得:

\[A=p_1^{a_1}*p_2^{a_2}*...*p_k^{a_k}=\prod_{i=1}^kp_i^{a_i}
\]

那么

\[A=p_1^{a_1B}*p_2^{a_2B}*...*p_k^{a_kB}=\prod_{i=1}^kp_i^{a_iB}
\]

易知\(A^B\)的约数之和就是:

\[ans=(1+p_1+p_1^2+...+p_1^{a_1B})*...*(1+p_k+p_k^2+...+p_k^{a_kB})\\=\prod_{i=1}^{k}(1+p_i+p_i^2+...+p_i^{a_iB})\\=\prod_{i=1}^{k}\sum_{j=0}^{a_iB}p_i^j
\]

分解质因数我们是可以简单做到的,由于涉及到取模,在不用逆元的情况下,我们不能直接用等比数列求和公式。

所以我们的问题就转化成了等比数列求和,这是可以利用分治在\(log\)时间内实现的(不涉及除法)。

对于求解\(sum(p,c)=1+p+...+p^c\),可以分解一下:

  • 对于c为奇数

\[sum(p,c)=1+p+...+p^c
\\=(1+p+...+p^{\frac{c-1}{2}})+p^{\frac{c+1}{2}}*(1+p+...+p^{\frac{c-1}{2}})
\\=(1+p^{\frac{c+1}{2}})*sum(p,\frac{c-1}{2})
\]

  • 对于c为偶数

\[sum(p,c)=1+p+...+p^c
\\=(1+p+...+p^{\frac{c}{2}-1})+p^{\frac{c}{2}}*(1+p+...+p^{\frac{c}{2}-1})+p^c
\\=(1+p^{\frac{c}{2}})*sum(p,\frac{c}{2}-1)+p^c
\]

再代回约数和公式,直接利用递归来做分治即可。

\(Code:\)

#include<bits/stdc++.h>
using namespace std;
const int Mod=9901;
long long A,B,p[50],k[50],n,ans=1;
inline void input(void)
{
scanf("%lld%lld",&A,&B);
}
inline void decompose(void)
{
long long temp=A;
for(int i=2;i<=temp;i++)
{
if((temp%i)==0)
{
n++;
p[n]=i;k[n]++;
temp/=i;
while((temp%i)==0)
{
k[n]++;
temp/=i;
}
}
}
for(int i=1;i<=n;i++)
k[i]*=B;
}
inline long long power(long long a,long long b)
{
long long res=1;
for(;b;b>>=1)
{
if(1&b)res=res*a%Mod;
a=a*a%Mod;
}
return res;
}
inline long long sum(long long x,long long y)
{
if(y==1)return x+1;
if(y==0)return 1;
if(y%2==1)
return ((1+power(x,(y+1)/2))%Mod*sum(x,(y-1)/2)%Mod)%Mod;
else return ((1+power(x,y/2))%Mod*sum(x,y/2-1)%Mod+power(x,y)%Mod)%Mod;
}
inline void solve(void)
{
for(int i=1;i<=n;i++)
{
ans*=sum(p[i],k[i])%Mod;
ans%=Mod;
}
}
int main(void)
{
input();
decompose();
solve();
printf("%lld\n",ans%Mod);
}

<后记>

『sumdiv 数学推导 分治』的更多相关文章

  1. 借One-Class-SVM回顾SMO在SVM中的数学推导--记录毕业论文5

    上篇记录了一些决策树算法,这篇是借OC-SVM填回SMO在SVM中的数学推导这个坑. 参考文献: http://research.microsoft.com/pubs/69644/tr-98-14.p ...

  2. MuPlayer『百度音乐播放内核』

    MuPlayer『百度音乐播放内核』 —— 跨平台.轻量级的音频播放解决方案. 多端(PC & WebApp)通用,统一的API调用方式 HTML5 Audio与Flash内核的平滑切换(支持 ...

  3. 【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』

    作者:阿里云用户mr_wid ,z)NKt#   @I6A9do   如果感觉该评测对您有所帮助, 欢迎投票给本文: UO<claV   RsfTUb)<   投票标题:  28.[阿里云 ...

  4. 关于不同进制数之间转换的数学推导【Written By KillerLegend】

    关于不同进制数之间转换的数学推导 涉及范围:正整数范围内二进制(Binary),八进制(Octonary),十进制(Decimal),十六进制(hexadecimal)之间的转换 数的进制有多种,比如 ...

  5. 『HTML5梦幻之旅』-缤纷多姿的烟花效果

    天花无数月中开,五采祥云绕绛台.堕地忽惊星彩散,飞空旋作雨声来.怒撞玉斗翻晴雪,勇踏金轮起疾雷.更漏已深人渐散,闹竿挑得彩灯回. ——明·瞿佑·<烟火戏> 记得每年过春节的那段时间,除了欣 ...

  6. UVA - 10014 - Simple calculations (经典的数学推导题!!)

    UVA - 10014 Simple calculations Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...

  7. LDA-线性判别分析(二)Two-classes 情形的数学推导

    本来是要调研 Latent Dirichlet Allocation 的那个 LDA 的, 没想到查到很多关于 Linear Discriminant Analysis 这个 LDA 的资料.初步看了 ...

  8. 『NiFi 学习之路』简介

    『NiFi 学习之路』简介 『NiFi 学习之路』入门 -- 下载.安装与简单使用 『NiFi 学习之路』资源 -- 资料汇总 『NiFi 学习之路』把握 -- 架构及主要组件 『NiFi 学习之路』 ...

  9. 『NiFi 学习之路』自定义 —— 组件的自定义及使用

    一.概述 许多业务仅仅使用官方提供的组件不能够满足性能上的需求,往往要通过高度可定制的组件来完成特定的业务需求. 而 NiFi 提供了自定义组件的这种方式. 二.自定义 Processor 占坑待续 ...

随机推荐

  1. java并发编程可见性与线程封闭

    可见性 所谓可见性,指的是当一个线程修改了对象的状态后,其他线程能够看到该对象发生的变化.在单线程环境下,向某个变量写入值,然后在后面的操作再读取,在这个过程中该变量的值对该线程来说总是可见.但是,在 ...

  2. 欧朋Opera 浏览器(打不开百度)提示“您的连接不是私密连接”,解决办法

    它网页报错SSL.提示“您的连接不是私密连接” 打开opera://net-internals/#hsts,操作如下图片,三步以后,ok 如果是其他外国浏览器,用这个办法也有效,可以把前面的 oper ...

  3. leetcode刷题正则表达式

    题目链接:https://leetcode-cn.com/problems/regular-expression-matching/ 这道题用到了动态规划: 关于动态规划请参考这篇博文:https:/ ...

  4. <玩转Django2.0>读书笔记:表单

    1. 表单字段 参考: 官方文档 Django表单字段汇总 2. 表单代码示例(forms.Form) # form.py代码 # 获取数据库数据 choices_list = [(i+1,v['ty ...

  5. hadoop hdfs ha 模式

    这是我自己在公司一个搭建公司大数据框架是自己的选项,在配置yarn ha 出现了nodemanager起不来的问题于是我把yarn搭建为普通yarn 如果有人解决 高yarn的nodemanager问 ...

  6. eclipse自身导致的项目问题:上边提示需要移除无用包,下边类提示需要导入包。

  7. NOIP2006普及组 Jam的计数法

    普及组重要的模拟题.附上题目链接 https://www.luogu.org/problem/show?pid=1061 (写水题题解算是巩固提醒自己细心吧qwq) 样例输入: bdfij 样例输出: ...

  8. python爬取房天下数据Demo

    import requests from bs4 import BeautifulSoup res = requests.get('http://sh.esf.fang.com/chushou/3_3 ...

  9. 整理SpringMVC

    Spring Web MVC核心架构图: 核心架构图流程如下: 1.首先用户发送请求------->DispatcherServlet(前端控制器),前端控制器收到请求后自己不进行处理,而是委托 ...

  10. .htaccess 文件 访问二级域名 对应的 指定文件夹

    <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # 绑定m.xxx.cc 到子目录m RewriteCond %{HTTP_ ...