首页 > 其他分享 >AtCoder Regular Contest 167——B - Product of Divisors

AtCoder Regular Contest 167——B - Product of Divisors

时间:2023-10-19 21:57:51浏览次数:37  
标签:AtCoder Product Contest int res flag 因子 ans

题目很明显,给定 所有因数的积不断除以最多能除几次。 首先,很容易发现,对于每一对因子,都可以对答案得出B的贡献,设A的因子数目为n。 将A进行质因数分解,PBa1,PBa2,PBa3……PBam,那么因数个数就是质因子加一的乘积。 那么因子对数也就是前者一半。答案就是B乘因子对数除以二注意此处除操作是下取整,需对结果进行奇偶判断,如果是另行奇数-1,然后分别乘二的逆元得出答案
int m = 998244353;
int qmid(int a, int b)
{
    int res = 1;
    while (b)
    {
        if (b & 1)
            res = res * a % m;
        a = a * a % m;
        b >>= 1;
    }
    return res;
}
void solve()
{
    int a, b;
    cin >> a >> b;
    int ans = 1; 
    bool flag = b % 2 == 0;
    for (int i = 2; i * i <= a; i++)
    {
        if (a % i == 0)
        {
            int cnt = 0;
            while (a % i == 0)
                cnt++, a /= i;
            int t = (1 + b % m * cnt) % m;
            ans = ans * t % m;
            if (cnt & 1)
                flag = 1;
        }
    }
    if (a > 1)
    {
        int t = (1 + b) % m;
        ans = ans * t % m;
        flag = 1;
    }
    ans = ans * (b % m) % m;

    if (!flag)
        ans = (ans - 1 + m) % m;
    ans = ans * qmid(2, m - 2) % m;
    cout << ans << endl;
}
View Code

 

 

标签:AtCoder,Product,Contest,int,res,flag,因子,ans
From: https://www.cnblogs.com/sheppard23/p/17775744.html

相关文章

  • AtCoder Beginner Contest(abc) 308
    B-DefaultPrice题目大意小莫买了n个寿司,现在给出m个寿司的名称和m+1个价格,如果小莫买的其中一个寿司不在这m个寿司之中就用价格m0;请问小莫买的寿司花了多少钱解题思路数据不大,暴力哈希即可;神秘代码#include<bits/stdc++.h>#defineintlonglong#define......
  • Atcoder Beginner Contest 324 G Generate Arrays 题解-Treap
    为了更好的阅读体验,请点击这里题目链接套上平衡树板子就能做的很快的题,然后因为是指针存树,因此交换只需要把序列大小较小的挨个拿出来插到相应的地方即可。复杂度\(O(N\log^2N)\)。但是一定要记住不可以直接使用std::swap交换包含带有指针的类的实例(如代码中的Treap类)!......
  • AtCoder Regular Contest 167
    Preface补一下上周日的ARC,因为当天白天和队友一起VP了一场所以就没有精力再打一场了这场经典C计数不会D这种贪心乱搞反而是一眼秒了,后面的EF过的太少就没看A-ToastsforBreakfastParty用一个类似于蛇形的放法就好了,比如对于\(n=9,m=5\),放法为:567894321#includ......
  • Japan Registry Services (JPRS) Programming Contest 2023 (AtCoder Beginner Contes
    JapanRegistryServices(JPRS)ProgrammingContest2023(AtCoderBeginnerContest324)赛后总结可悲的是:我没来得及写题解。T1Same秒切。直接输入排一遍序再遍历即可。#include<bits/stdc++.h>usingnamespacestd;intn,a[101];intmain(){cin>>n;f......
  • 比赛总结:Japan Registry Services (JPRS) Programming Contest 2023 (AtCoder Beginn
    比赛:JapanRegistryServices(JPRS)ProgrammingContest2023(AtCoderBeginnerContest324)A-same1.常规方法intmain(){ intn; cin>>n; vector<int>s(n);//利用vector容器可以不需要确定内存大小 for(auto&n:s) { cin>>n; } for(inti=0;i......
  • AtCoder Regular Contest 066 F Contest with Drinks Hard
    洛谷传送门AtCoder传送门下文令\(a\)为原题中的\(T\)。考虑若没有饮料,可以设\(f_i\)表示,考虑了前\(i\)道题,第\(i\)道题没做的最大得分。转移就枚举上一道没做的题\(j\),那么\([j+1,i-1]\)形成一个连续段。设\(b_i\)为\(a_i\)的前缀和,可得:\[f_i=\max\li......
  • [Leetcode Weekly Contest]367
    链接:LeetCode[Leetcode]2903.找出满足差值条件的下标I给你一个下标从0开始、长度为n的整数数组nums,以及整数indexDifference和整数valueDifference。你的任务是从范围[0,n-1]内找出2个满足下述所有条件的下标i和j:abs(i-j)>=indexDifference且a......
  • Atcoder Regular Contest 167
    卡B下大分了,怎么回事呢。A.ToastsforBreakfastParty发现题意是让方差尽可能小,就是让\(A\)里的值尽可能接近。所以从小到大排个序,把\(A_{N,\dots,N-M+1}\)依次放进\(1,2,\dots,M\),再把\(A_{N-M,\dots,1}\)依次放进\(M,M-1,\dots,2M-N+1\)就赢了。B.Productof......
  • AtCoder Beginner Contest 324
    在高铁上加训!A-Same(abc324A)题目大意给定\(n\)个数,问是否都相等。解题思路判断是不是全部数属于第一个数即可。或者直接拿set去重。神奇的代码#include<bits/stdc++.h>usingnamespacestd;usingLL=longlong;intmain(void){ios::sync_with_stdio(f......
  • java.io.IOException: Could not find resource mapper/ProductCategoryMapper.xml 解
    java.io.IOException:Couldnotfindresourcemapper/ProductCategoryMapper.xml解决方案 一、问题背景通过MyBatisPlus测试达梦数据库过程中,运行测试类的时候,项目报错:“java.io.IOException:Couldnotfindresourcemapper/ProductCategoryMapper.xml”工程的目录......