Sumdiv


title: Sumdiv
date: 2023-12-12 21:45:09
tags: 分治
categories: 算法进阶指南

题目大意

A B A^B AB 的所有约数之和 m o d mod mod 9901 9901 9901( 1 1 1 ≤ \leq A , B A,B A,B ≤ \leq 5 ∗ 1 0 7 5 * 10 ^ 7 5107)

解题思路

A A A 分解质因数,表示为 p 1 c 1 p1^{c_1} p1c1 * p 2 c 2 p2 ^ {c_2} p2c2 * …… * p n c n pn^{c_n} pncn,那个 A ∗ B A * B AB 就为 p 1 B ∗ c 1 p1^{B * c_1} p1Bc1 * p 2 B ∗ c 2 p2 ^ {B * c_2} p2Bc2 * …… * p n B ∗ c n pn^{B * c_n} pnBcn
根据乘法分配律, A B A^B AB 所有约数的和就是:
( 1 + p 1 + … … + p 1 B ∗ c 1 1 + p_1 + …… + p_1^{B * c_1} 1+p1+……+p1Bc1) * ( 1 + p 2 + … … + p n B ∗ c 2 1 + p_2 + …… + p_n^{B * c_2} 1+p2+……+pnBc2) * …… * ( 1 + p n + … … + p n B ∗ c n 1 + p_n + …… + p_n^{B * c_n} 1+pn+……+pnBcn)
比如: 360 360 360 = 2 3 ∗ 3 2 ∗ 5 1 2^3*3^2*5^1 233251,约数之和为 ( 2 0 + 2 1 + 2 2 + 2 3 ) ∗ ( 3 0 + 3 1 + 3 2 ) ∗ ( 5 0 + 5 1 ) (2^0 + 2^1 + 2^2 + 2 ^ 3) * (3 ^ 0 + 3 ^ 1 + 3 ^ 2) * (5 ^ 0 + 5 ^ 1) (20+21+22+23)(30+31+32)(50+51)
约数个数为 ( 3 + 1 ) ∗ ( 2 + 1 ) ∗ ( 1 + 1 ) (3 + 1) * (2 + 1) * (1 + 1) (3+1)(2+1)(1+1)
每一个括号都是等比数列,使用分治法进行等比数列的求和。
问题转化为:
使用分治法求 sum(p,c) = 1 + p + p 2 + … … + p c 1 + p + p ^ 2 + …… + p ^ c 1+p+p2+……+pc = ?
c c c 为奇数:sum(p,c) = (1 + p c + 1 p^{c + 1} pc+1) * sum(p,(c - 1) / 2);
c c c 为偶数:sum(p,c) = (1 + p c / 2 p ^ {c /2 } pc/2) * sum(p,c / 2 - 1) + p c p ^ c pc;
每一次分治之后,问题的规模会缩小一半,配合快速幂即可在 O ( l o g c ) O(log c) O(logc) 的时间内求出等比数列的和。

代码实现

#include<bits/stdc++.h>
using namespace std;typedef long long LL;const int N = 1314;const int MOD = 9901;LL kmi(LL a,LL k)
{LL ans = 1;a %= MOD;for(;k ; k >>= 1){if(k & 1){ans = ans * a % MOD; }a = a * a % MOD;}return ans;
}LL sum(LL p,LL c)
{if(c == 0) return 1; else if(c & 1){return (1 + kmi(p,(c + 1) / 2) % MOD) * sum(p,(c - 1) / 2) % MOD;}else{return (1 + kmi(p,c / 2)) % MOD * sum(p,c / 2 - 1)  % MOD+ kmi(p,c) % MOD;}
}unordered_map<LL,LL> cnt;
int main()
{LL A,B;cin >> A >> B;for(int i = 2; i <= A / 2 ; i ++){while(A % i == 0){A /= i;cnt[i] ++; }}if(A == 0){cout << 0 << endl;return 0;}if(A > 1) cnt[A] ++;LL ans = 1;for(auto x : cnt){// cout << x.first << ' ' << x.second << endl;ans *= sum(x.first,x.second * B);ans %= MOD;}cout << ans  << endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/217853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4-Docker命令之docker export

1.docker export介绍 docker export命令是用来将docker容器中的文件系统导出为一个tar归档文件 2.docker export用法 docker export [参数] container [rootcentos79 ~]# docker export --helpUsage: docker export [OPTIONS] CONTAINERExport a containers filesystem a…

开源工业以太网现场总线协议栈汇总

开源现场总线协议栈 EtherNet/IP、EtherCAT master、Profinet开源汇总&#xff1a; EtherNet/IP:https://github.com/EIPStackGroup/OpENer EtherCAT master:https://gitlab.com/etherlab.org/ethercat EtherCAT master:https://github.com/OpenEtherCATsociety/soem http…

【C++】哈希表

文章目录 哈希概念哈希冲突哈希函数哈希表闭散列开散列 开散列与闭散列比较 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。 点击跳转到网站。 哈希概念 顺…

PHP基础 - 数据类型

数据类型 序号数据类型描述1字符串(String)用于表示文本数据2整型(Integer)用于表示整数数据3浮点型(Float)用于表示带有小数部分的数值4布尔型(Boolean)用于表示真或假两个状态5数组(Array)用于存储多个值的有序集合6对象类型(Object)用于表示自定义的复杂数据结构…

CPython(将Python编译为so)

环境 先配一下环境&#xff0c;我使用的是python3.8.5 pip install Cython 编译过程 我们准备一个要编译的文件 test.py def xor(input_string): output_string "" for char in input_string: output_string chr(ord(char) ^ 0x66) return output_string…

Redis - 事务隔离机制

Redis 的事务的本质是 一组命令的批处理 。这组命令在执行过程中会被顺序地、一次性 全部执行完毕&#xff0c;只要没有出现语法错误&#xff0c;这组命令在执行期间是不会被中断。 当事务中的命令出现语法错误时&#xff0c;整个事务在 exec 执行时会被取消。 如果事务中的…

C++入门【7-C++ 存储类】

C 存储类 存储类定义 C 程序中变量/函数的范围&#xff08;可见性&#xff09;和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C 程序中可用的存储类&#xff1a; autoregisterstaticexternmutablethread_local (C11) 从 C 17 开始&#xff0c;auto 关键字不再…

PyTorch深度学习实战(25)——自编码器

PyTorch深度学习实战&#xff08;25&#xff09;——自编码器 0. 前言1. 自编码器2. 使用 PyTorch 实现自编码器小结系列链接 0. 前言 自编码器 (Autoencoder) 是一种无监督学习的神经网络模型&#xff0c;用于数据的特征提取和降维&#xff0c;它由一个编码器 (Encoder) 和一…

20分钟部署ChatGLM3-6B

准备工作 1.下载源代码&#xff1a; https://github.com/THUDM/ChatGLM3 2.下载预训练模型&#xff1a; https://modelscope.cn/models/ZhipuAI/chatglm3-6b/files 可以创建一个py文件&#xff0c;直接使用如下代码下载到本地&#xff1a; from modelscope.hub.snapshot_dow…

python实现形态学建筑物指数MBI提取建筑物及数据获取

前言 形态学建筑物指数MBI通过建立建筑物的隐式特征和形态学算子之间的关系进行建筑物的提取[1]。 原理 上图源自[2]。 实验数据 简单找了一张小图片&#xff1a; test.jpg 代码 为了支持遥感图像&#xff0c;读写数据函数都是利用GDAL写的。 import numpy as np import …

重建大师里能不能用kml圈出一块出来空三?

答&#xff1a;这个功能暂时还没有&#xff0c;可以先空三&#xff0c;然后导入范围kml去进行重建。 重建大师是一款专为超大规模实景三维数据生产而设计的集群并行处理软件&#xff0c;输入倾斜照片&#xff0c;激光点云&#xff0c;POS信息及像控点&#xff0c;输出高精度彩色…

LNMP网站架构分布式搭建部署

1. 数据库的编译安装 1. 安装软件包 2. 安装所需要环境依赖包 3. 解压缩到软件解压缩目录&#xff0c;使用cmake进行编译安装以及模块选项配置&#xff08;预计等待20分钟左右&#xff09;&#xff0c;再编译及安装 4. 创建mysql用户 5. 修改mysql配置文件&#xff0c;删除…

时间序列预测 — BiLSTM实现多变量多步光伏预测(Tensorflow)

目录 1 数据处理 1.1 导入库文件 1.2 导入数据集 1.3 缺失值分析 2 构造训练数据 3 模型训练 3.1 BiLSTM网络 3.2 模型训练 4 模型预测 1 数据处理 1.1 导入库文件 import time import datetime import pandas as pd import numpy as np import matplotlib.pyplot…

触发器和函数:让代码更接近数据

来源&#xff1a;艾特保IT 虹科干货丨触发器和函数&#xff1a;让代码更接近数据 原文链接&#xff1a;虹科干货 | 触发器和函数&#xff1a;让代码更接近数据 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 文章速览&#xff1a; 触发器和函数的基础知识 编写语言…

AI创新之美:AIGC探讨2024年春晚吉祥物龙辰辰的AI绘画之独特观点

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《粉丝福利》 《linux深造日志》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 引言一、龙辰辰事件概述二、为什么龙辰辰会被质疑AI创作&#xff1f;1.1 AI 作画的特点2.2 关于建行的合作宣传图…

聊聊AsyncHttpClient的IOExceptionFilter

序 本文主要研究一下AsyncHttpClient的IOExceptionFilter IOExceptionFilter org/asynchttpclient/filter/IOExceptionFilter.java /*** This filter is invoked when an {link java.io.IOException} occurs during an http transaction.*/ public interface IOExceptionFi…

都是星光赶路人

不知不觉已经快工作五年了&#xff0c;工作以后就感觉时间一年比一年快&#xff0c;仿佛昨天才刚毕业&#xff0c;就像陈鸿宇歌中的那样&#xff0c;多少遗憾自负存念想&#xff0c;唯有时间不可挡。五年&#xff0c;思考了很多&#xff0c;也想明白了许多。正好借着年末&#…

STM32 MCU的易坑点收集

IIC配置中的Clock No Stretch Mode Clock Stretch Mode时钟延长模式&#xff1a; 时钟延长是一个术语&#xff0c;某些从设备可以把时钟线拉低&#xff0c;主设备发现自己释放时钟线之后时钟线还没有变成高电平&#xff0c;就会停止发送数据&#xff0c;然后等待从设备释放时钟…

Angular+Nginx区域HIS医院信息管理系统源码

医院管理信息系统&#xff08;HIS&#xff09;是医院基本、重要的管理系统&#xff0c;是医院大数据的基础。“云”指系统采用云计算的技术和建设模式&#xff0c;具有可扩展、易共享、区域化、易协同、低成本、易维护、体验好的优势。“H”是医疗卫生&#xff0c;由原来医院 (…

利用transition-group标签包裹li标签,实现输入数据后按Enter键将数据添加到列表中

1.效果图 2.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title><script src"https://cdn.bootcdn.net/ajax/libs/vue/2.3.0/vue.js"></script><div id&quo…