题目:Sumdiv

题解:先用质因子分解
A = p1a1 p2a2 p3a3…pnan (p1,p2,p3…为质数)
AB = p1a1B p2a2B p3a3B…pnanB (p1,p2,p3…为质数)
所求的就是(p10+…+p1a1B)(p20+…+p2a2B),所以这个就需要用到等比数列求和公式了

这时候需要对(1-q)求逆元,但不能保证它们互质,所以不能单纯的使用扩展欧几里得或者费马小定理。

所以可以这样a/b%m=a%(b*m)/b

//#include <bits/stdc++.h>
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <map>
using namespace std;
typedef __int64 ll;
typedef pair<int,int>P;
const int N = 2e5+10;
const ll mod = 9901;
const ll inf = 10000000000000000;int random(int n){return (ll)rand()*rand()%n;
}map<ll,ll>vis;
map<ll,ll>::iterator it;ll mul_pow(ll a,ll p,ll m){ll ans = 0;while(p){if(p&1) ans = (ans+a)%m;p >>= 1;a = (a*2)%m;}return ans;
}
ll fast_pow(ll a,ll p,ll m){ll ans = 1;a %= m;while(p){if(p&1) ans = mul_pow(ans,a,m);p >>= 1;a = mul_pow(a,a,m);}return ans;
}void exgcd(ll a,ll b,ll &x,ll &y){if(b == 0){x = 1ll;y = 0ll;return;}exgcd(b,a%b,x,y);ll t = x;x = y;y = t-a/b*y;
}void fun(ll a){ll n = a;for(ll i = 2;i*i <= n;i++){while(a%i == 0){vis[i]++;a /= i;}}if(a > 1ll) {vis[a]++;}
}
void solve(ll a,ll b){vis.clear();if(a <= 1ll || b == 0ll){cout<<1<<endl;return;}fun(a);ll ans = 1;for(it = vis.begin();it != vis.end();it++){ll x = it->first,y = (it->second)*b;ll sum = (fast_pow(x,y+1,mod*(x-1))-1)/(x-1)%mod;ans = (ans*sum)%mod;}printf("%lld\n",(ans+mod)%mod);
}
int main(){ll a,b;while(~scanf("%lld%lld",&a,&b)){solve(a,b);break;}return 0;
}

POJ1845:Sumdiv相关推荐

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

    问题链接:POJ1845 Sumdiv. 问题简述:参见上述链接. 问题分析:计算a^b的因子数,首先要对a进行因子分解,然后再进行计算. 程序说明:计算过程中用到了快速模幂函数. 题记:(略) AC ...

  2. poj-1845 Sumdiv nyoj - 928 小M的因子和

    题意:求解A^B的因子和 mod 9901 先求解素因子,然后二分求解等比数列 #include<cstdio> #include<cmath> typedef long lo ...

  3. POJ-1845 Sumdiv 逆元,特殊情况

    详见代码: #include <cstdlib> #include <cstring> #include <cstdio> #include <cmath&g ...

  4. poj1845 Sumdiv 题解报告

    题目传送门 [题目大意] 求$A^B$的所有约数之和($mod\ \ 9901$) [思路分析] 把$A$分解质因数,则$$A=p_1^{c_1}*p_2^{c_2}*-*p_n^{c_n}$$ 于是 ...

  5. POJ1845 Sumdiv 递归

    题目链接 http://poj.org/problem?id=1845 分析 将 AAA 分解质因数为 p1c1∗p2c2∗...∗pncnp_1 ^ {c_1} * p_2 ^ {c_2} * .. ...

  6. 算法竞赛进阶指南第一章--题解

    例题:CH0103 最短Hamilton路径 题意: 给定一张n(<20)个点的带权无向图,点从0~n-1编号,求起点0到终点n-1的最短hanmilton路径: h路径的定义为0~n-1不重不 ...

  7. noip2017考前整理(未完)

    快考试了,把我以前写过的题回顾一下. Noip2007 树网的核:floyd,推出性质,暴力. Noip2008 笨小猴:模拟 Noip2008 火柴棒等式:枚举 Noip2008 传纸条:棋盘dp ...

  8. Sumdiv POJ - 1845

    Sumdiv POJ - 1845 题意: 求ABA^BAB的所有约数之和mod 9901(1<=A,B<=5e7) 题解: 我们先将A分解质因子,表示为:p1c1∗p2c2∗...... ...

  9. 【POJ 1845】 Sumdiv (整数唯分+约数和公式+二分等比数列前n项和+同余)

    [POJ 1845] Sumdiv 用的东西挺全 最主要通过这个题学了约数和公式跟二分求等比数列前n项和 另一种小优化的整数拆分  整数的唯一分解定理: 随意正整数都有且仅仅有一种方式写出其素因子的乘 ...

最新文章

  1. cpio/rpm2cpio 命令
  2. CPU缓存与CPU性能的关系
  3. 大连大学计算机科学与技术考研真题,2016年大连大学计算机科学与技术数据库系统原理复试笔试最后押题五套卷...
  4. 41.进程池--Pool
  5. 单片机拼字程序怎么做_小程序商城怎么做?做一个小程序需要多少钱
  6. 一个 Java 的 Socket 服务器和客户端通信的例子
  7. Bailian2790 迷宫【DFS】
  8. 头条面试题,4种解法,60+图清晰讲解,面试官让我优化,小夕一通优化最终击败100%用户
  9. POST型SQL注入教学
  10. 杭州软件测试工程师培训
  11. 如何提高你的工作效率
  12. Flask框架学习笔记9-jinjia2模板语言
  13. web课程设计网页制作、基于HTML+CSS大学校园班级网页设计
  14. linux内核协议栈 TCP层数据发送之发送新数
  15. 抖音短连接v.douyin.com/xxx 如何生成?
  16. 反欺诈之路——黑卡、养卡的识别
  17. codevs 1373 射命丸文(矩阵前缀和)
  18. 全球及中国海洋涂料市场十四五发展目标与运营方向调研报告2022
  19. JAVA的基本数据类型以及数值范围
  20. 联盟里这么多企业,哪一家会是我的东家?

热门文章

  1. docker alpine包管理工具 apk
  2. 声卡是组成多媒体电脑必不可少的
  3. github团队开发--组建自己的组织(Organization)
  4. 通过FFMpeg将MOV视频转为黑白通道的mp4(可设置上下/左右)
  5. Java集合(Collection)习题集锦
  6. 抖音矩阵系统源码,抖音矩阵系统独立部署定制开发。
  7. 将本地的jar包放入maven仓库
  8. Origin pro更改语言灰色时的解决办法
  9. STC大作业创新设计-乒乓游戏改进-代码
  10. vue 数组添加数据