当前位置: 首页 > news >正文

建五金方面的网站品牌鞋子排行榜前十名

建五金方面的网站,品牌鞋子排行榜前十名,东莞自媒体运营推广公司,深圳网站设..Powered by:NEFU AB-IN Link 文章目录97. 约数之和题意思路代码97. 约数之和 题意 假设现在有两个自然数 A和 B,S是 A^B的所有约数之和。 请你求出 S mod 9901的值是多少。 思路 ABA^BAB的约数之和为:sumAB(1p1p12...p1Ba1)(1p2p22...p2Ba2)...sum_{A^B…

Powered by:NEFU AB-IN

Link

文章目录

  • 97. 约数之和
    • 题意
    • 思路
    • 代码

97. 约数之和

  • 题意

    假设现在有两个自然数 A和 B,S是 A^B的所有约数之和。
    请你求出 S mod 9901的值是多少。

  • 思路

    ABA^BAB的约数之和为:sumAB=(1+p1+p12+...+p1B×a1)×(1+p2+p22+...+p2B×a2)×...sum_{A^B} = (1 +p_1 + p_1 ^ 2 + ... + p_1^{B×a_1}) × (1 +p_2 + p_2 ^ 2 + ... + p_2^{B×a_2}) × ...sumAB=(1+p1+p12+...+p1B×a1)×(1+p2+p22+...+p2B×a2)×...
    为什么最高项是B×aB×aB×a呢,最高项代表ppp这个质因子的个数,一开始AAAxxxppp,那么A3=A×A×AA^3=A×A×AA3=A×A×A就有3x3x3xppp

    • 做法一:等比数列求和 + 快速幂

      所以,对于每个质因子,根据等比数列求和公式 (1+p+p2+...+pB×a)=pB×a+1−1p−1(1 +p + p ^ 2 + ... + p^{B×a}) = \frac{p^{B×a+1}-1}{p-1}(1+p+p2+...+pB×a)=p1pB×a+11
      那么,对AAA进行质因子分解

      • pB×a+1p^{B×a+1}pB×a+1快速幂
      • 1p−1\frac{1}{p-1}p11费马小定理求逆元,但必须保证p−1p-1p1MODMODMOD互质
        • p−1p-1p1MODMODMOD互质,正常求即可
        • p−1p-1p1MODMODMOD不互质,我们无法求逆元,就换种思路求表达式。因为 p%MOD=1p \% MOD = 1p%MOD=1(1+p+p2+...+pB×a)%MOD=1+B×a×1=1+B×a(1 +p + p ^ 2 + ... + p^{B×a}) \% MOD= 1 + B×a ×1 = 1 + B×a(1+p+p2+...+pB×a)%MOD=1+B×a×1=1+B×a,所以直接返回1+B×a1 + B×a1+B×a即可

      复杂度 O(nlog(n))O(\sqrt{n}log(n))O(nlog(n))

    • 做法二:分治 + 快速幂
      定义 sum(p,k)=(1+p+p2+...+pk)sum(p, k) = (1 +p + p ^ 2 + ... + p^{k})sum(p,k)=(1+p+p2+...+pk),共k+1k +1k+1

      • kkk奇数时,项数为偶数,以下默认k2=⌊k2⌋\frac{k}{2} =\lfloor \frac{k}{2} \rfloor2k=2k
        原式=(p0+p1+...+pk2)+(pk2+1+...+pk)=(p0+p1+...+pk2)+pk2+1×(p0+p1+...+pk2)=(1+pk2+1)×sum(p,k2)=(p^0+p^1+...+p^{\frac{k}{2}}) +(p^{\frac{k}{2} +1}+...+p^k) = (p^0+p^1+...+p^{\frac{k}{2}}) + p^{\frac{k}{2} +1} × (p^0+p^1+...+p^{\frac{k}{2}}) = (1 + p^{\frac{k}{2} +1} ) × sum(p, \frac{k}{2})=(p0+p1+...+p2k)+(p2k+1+...+pk)=(p0+p1+...+p2k)+p2k+1×(p0+p1+...+p2k)=(1+p2k+1)×sum(p,2k)
      • kkk偶数时,转化为奇数情况,sum(p,k)=sum(p,k−1)+pksum(p,k) = sum(p ,k - 1) + p^ksum(p,k)=sum(p,k1)+pk

      复杂度 O(nlog(n)log(n))O(\sqrt{n}log(n)log(n))O(nlog(n)log(n))

    • 超时做法三:递推
      (p0+p1+...+pk)(p^0+p^1+...+p^k)(p0+p1+...+pk),可用递推式,ans = ans * p + 1,但此做法会超时

  • 代码

    做法一

    /** @Author: NEFU AB-IN* @Date: 2023-02-18 11:22:46* @FilePath: \Acwing\97\97.cpp* @LastEditTime: 2023-02-18 23:11:41*/
    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    #undef int#define SZ(X) ((int)(X).size())
    #define ALL(X) (X).begin(), (X).end()
    #define IOS                                                                                                            \ios::sync_with_stdio(false);                                                                                       \cin.tie(nullptr);                                                                                                  \cout.tie(nullptr)
    #define DEBUG(X) cout << #X << ": " << X << '\n'
    typedef pair<int, int> PII;const int N = 1e5 + 10, INF = 0x3f3f3f3f, MOD = 9901;int quickmod(int a, int b)
    {a %= MOD;int res = 1;while (b){if (b & 1)res = res * a % MOD;a = a * a % MOD;b = b >> 1;}return res % MOD;
    }signed main()
    {IOS;int a, b;cin >> a >> b;if (!a){cout << 0;return 0;}// 质因子分解unordered_map<int, int> mp;for (int i = 2; i <= a / i; ++i){while (a % i == 0){mp[i]++;a /= i;}}if (a > 1)mp[a]++;int ans = 1;auto f = [&](int p, int n) {if ((p - 1) % MOD == 0)return n + 1;int pp = quickmod(p, n + 1);int ny = quickmod(p - 1, MOD - 2);return (pp - 1 + MOD) * ny % MOD;};for (auto [x, cnt] : mp){ans = ans * f(x, cnt * b) % MOD;}cout << ans;return 0;
    }

    做法二

    /** @Author: NEFU AB-IN* @Date: 2023-02-18 12:21:32* @FilePath: \Acwing\97\97.1.cpp* @LastEditTime: 2023-02-19 11:36:53*/
    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    #undef int#define SZ(X) ((int)(X).size())
    #define ALL(X) (X).begin(), (X).end()
    #define IOS                                                                                                            \ios::sync_with_stdio(false);                                                                                       \cin.tie(nullptr);                                                                                                  \cout.tie(nullptr)
    #define DEBUG(X) cout << #X << ": " << X << '\n'
    typedef pair<int, int> PII;const int N = 1e5 + 10, INF = 0x3f3f3f3f, MOD = 9901;int quickmod(int a, int b)
    {a %= MOD;int res = 1;while (b){if (b & 1)res = res * a % MOD;a = a * a % MOD;b = b >> 1;}return res % MOD;
    }int sum(int p, int k)
    {if (k == 0)return 1;if (k % 2 == 0)return sum(p, k - 1) % MOD + quickmod(p, k) % MOD;return sum(p, k / 2) % MOD * (1 + quickmod(p, k / 2 + 1)) % MOD;
    }int main()
    {IOS;int a, b;cin >> a >> b;if (!a){cout << 0;return 0;}// 质因子分解unordered_map<int, int> mp;for (int i = 2; i <= a / i; ++i){while (a % i == 0){mp[i]++;a /= i;}}if (a > 1)mp[a]++;int ans = 1;for (auto [x, cnt] : mp){ans = ans * sum(x, cnt * b) % MOD;}cout << ans;return 0;
    }
    
http://www.yayakq.cn/news/530631/

相关文章:

  • 做微信请帖网站新乡网站建设哪家优惠
  • 商务礼品网站模板aso优化违法吗
  • 侨联 文化宣传 侨联网站建设国色天香站长工具
  • 源码论坛网站快飞建站
  • wordpress多站点开启wordpress地址和站点地址
  • 青浦专业网站建设建设部网站如何下载文件
  • 企业网站改自适应免费ppt插图高清图片
  • 网站建设团队名称课程网站建设规划方案
  • 网站挂马检测流程图番禺俊才网
  • 整站优化温州怎么做?微信如何申请小程序商店
  • 有站点网络营销平台河北公司网站建设
  • 网站建设388移动网站建设公司
  • 企业cms建站小程序模板源码免费
  • 现在流行用什么做网站企业查询软件排行榜
  • 惠州建站方案百度网址
  • 做网站上的在线支付怎么做给人做代工的网站
  • 做国际网站有用张家港做网站哪家好
  • 临沂医院网站建设wordpress 获取分类下的文章
  • 建立一个购物网站wordpress伪静态文件
  • 电子商务网站设计html模板记事本做网站文字居中
  • 免费网站服务器域名论文中引用网站中
  • 网站英文版建设阿里云wordpress配置
  • 网站开发前端就业前景二级域名分发平台
  • 环保网站建设情况报告wordpress 漂亮的博客
  • 电子商务网站建设与管理试卷windows 2008 wordpress
  • 化妆品网站模板公司网站公司哪家好
  • 汉服网站设计目的视觉上体验的网站
  • 学校网站策划书有什么可以做建筑模型的网站
  • 免费做网站有哪些家上海哪家公司做网站好
  • 企业网站的意义wordpress怎么设置伪静态页面