题目: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. 802.11概述及帧结构分析
  2. Z-Stack - Modification of Zigbee Device Object for better network access management
  3. Redis基础高级学习笔记
  4. (DBA之路【十一】)master-slave 机制原理
  5. 【51单片机快速入门指南】4.3.4: MPU6050使用Madgwick AHRS算法实现六轴姿态融合获取四元数、欧拉角
  6. 大数据和后端学习知识体系思维导图
  7. ModuleNotFoundError: No module named 'sklearn.grid_search'报错
  8. 批量导出导入docker镜像
  9. Python是个什么鬼?为什么那么多工作“会Python优先”?
  10. 十年AI学者影响力盘点:何恺明排名第一,成为全球最具影响力学者
  11. 记一次网络风暴/网络环路
  12. Android混淆总结篇(一)
  13. 深入理解计算机系统-之-数值存储(二)--C程序打印变量的每一字节或者位
  14. SSL证书过期后怎么办?
  15. 丁腈橡胶自然老化时间_丁腈橡胶老化与防护的探究
  16. 生成条形码显示到界面
  17. json 语言解析为String,单个对象和集合的json和String之间的相互解析
  18. html网页制作favicon页面,图片存在网页显示
  19. 必应(http://cn.bing.com/)每日图片下载
  20. localdate获取几个月前_Java8 使用LocalDate计算两个日期间隔多少年,多少月,多少天...

热门文章

  1. CMIP6文件名含义详解
  2. 【四二学堂】Go语言入门-Go语言实现的一撮金游戏
  3. Java 开发工具包 Java SE Development Kit 8/11LTS/15
  4. 拼接URL在线生成二维码
  5. RabbitMQ问题排解
  6. 算法设计与分析: 4-11 硬币找钱问题
  7. 遥感—以常用夜光遥感卫星介绍为主
  8. UVA 10242 Fourth Point
  9. linux命令简化,Linux ls 命令实现(简化版)
  10. 生产制造|数字化车间生产如何进行高效管理?