『sumdiv 数学推导 分治』
<更新提示>
<第一次更新>
<正文>
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^B\)的约数之和就是:
\]
分解质因数我们是可以简单做到的,由于涉及到取模,在不用逆元的情况下,我们不能直接用等比数列求和公式。
所以我们的问题就转化成了等比数列求和,这是可以利用分治在\(log\)时间内实现的(不涉及除法)。
对于求解\(sum(p,c)=1+p+...+p^c\),可以分解一下:
- 对于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为偶数
\\=(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 数学推导 分治』的更多相关文章
- 借One-Class-SVM回顾SMO在SVM中的数学推导--记录毕业论文5
上篇记录了一些决策树算法,这篇是借OC-SVM填回SMO在SVM中的数学推导这个坑. 参考文献: http://research.microsoft.com/pubs/69644/tr-98-14.p ...
- MuPlayer『百度音乐播放内核』
MuPlayer『百度音乐播放内核』 —— 跨平台.轻量级的音频播放解决方案. 多端(PC & WebApp)通用,统一的API调用方式 HTML5 Audio与Flash内核的平滑切换(支持 ...
- 【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』
作者:阿里云用户mr_wid ,z)NKt# @I6A9do 如果感觉该评测对您有所帮助, 欢迎投票给本文: UO<claV RsfTUb)< 投票标题: 28.[阿里云 ...
- 关于不同进制数之间转换的数学推导【Written By KillerLegend】
关于不同进制数之间转换的数学推导 涉及范围:正整数范围内二进制(Binary),八进制(Octonary),十进制(Decimal),十六进制(hexadecimal)之间的转换 数的进制有多种,比如 ...
- 『HTML5梦幻之旅』-缤纷多姿的烟花效果
天花无数月中开,五采祥云绕绛台.堕地忽惊星彩散,飞空旋作雨声来.怒撞玉斗翻晴雪,勇踏金轮起疾雷.更漏已深人渐散,闹竿挑得彩灯回. ——明·瞿佑·<烟火戏> 记得每年过春节的那段时间,除了欣 ...
- UVA - 10014 - Simple calculations (经典的数学推导题!!)
UVA - 10014 Simple calculations Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...
- LDA-线性判别分析(二)Two-classes 情形的数学推导
本来是要调研 Latent Dirichlet Allocation 的那个 LDA 的, 没想到查到很多关于 Linear Discriminant Analysis 这个 LDA 的资料.初步看了 ...
- 『NiFi 学习之路』简介
『NiFi 学习之路』简介 『NiFi 学习之路』入门 -- 下载.安装与简单使用 『NiFi 学习之路』资源 -- 资料汇总 『NiFi 学习之路』把握 -- 架构及主要组件 『NiFi 学习之路』 ...
- 『NiFi 学习之路』自定义 —— 组件的自定义及使用
一.概述 许多业务仅仅使用官方提供的组件不能够满足性能上的需求,往往要通过高度可定制的组件来完成特定的业务需求. 而 NiFi 提供了自定义组件的这种方式. 二.自定义 Processor 占坑待续 ...
随机推荐
- Windows 运行命令大全,装逼必备哦!
以下已整理,以字母先后排序: appwiz.cpl:程序和功能 cliconfg:SQL SERVER 客户端网络实用工具 cmd:CMD命令提示符 comexp.msc或者dcomcnfg:组件服务 ...
- qt之数据库对照片的存取
需要确保数据库连接上 QOCI为驱动 //oracle 数据库连接 //需要在执行文件目录添加 oci.dll oraociei11.dll QSqlDatabase db = QSqlDatabas ...
- 《团队作业》五小福团队作业--UNO-- LandingDay--降落
<团队作业>五小福团队作业--UNO-- LandingDay--降落 写在前面 几周的飞行之后,降落之日也如期而至了.在2018年12月19日我们顺利地完成了项目的总结汇报.但是,短暂的 ...
- 研究比对搞定博客 canvas-nest.js
经过比对网站源码,发现大的差异,复制代码添加成功. 参考:https://www.cnblogs.com/kexing/p/7264767.html 申请js权限 编辑 具体编辑请自行实验, 附上 ...
- 3步永久性激活pycharm 亲测有效
----------破解后,有效时间会到2099年------------ 1.下载JAR包:此JAR包的目的就是让截获截止时间并骗过pycharm 链接:https://pan.baidu.com/ ...
- django自制后台左侧导航代码
自定义一个sort.py页面: 写入一下代码: class lanmusort(object): def __init__(self): self.arr=[] def lanmuget(self,o ...
- centos7搭建zabbix3.0监控系统
关闭防火墙和selinux systemctl stop firewalld.service (停止防火墙) systemctl disable firewalld.se ...
- HTTP 报文格式
(a)GET,POST,PUT(更新)DELETE(删除) 首行中,请求报文只需包含路由,因为在发送请求前,tcp连接已经创建,协议版本 Header: 接收类型 (b)版本 + 状态码 Header ...
- C#找不到ConfigurationManager类
c#添加了Configuration;后,竟然找不到 ConfigurationManager 这个类,后来才发现:虽然引用了using System.Configuration;这个包,但是还是不行 ...
- 把.zip文件转化为.tar.gz文件
工作中正好用到上传tar.gz文件,没有现成的转换工具,就写了方法转换 #encoding: utf-8import osimport tarfileimport zipfileimport osim ...