首页 > 其他 > 详细

LC 1735. Count Ways to Make Array With Product

时间:2021-01-25 23:39:22      阅读:39      评论:0      收藏:0      [点我收藏+]

link
技术分享图片

class Solution {
public:
    #define LL long long
    const int mod=1E9+7;
    int c[10015][15];
    vector<int> waysToFillArray(vector<vector<int>>& queries) {
        for(int i=1;i<10015;i++){
            c[i][0]=1;
            for(int j=1;j<=min(i,14);j++) {
                if(j==i) c[i][j]=1;
                else c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
            }
        }
        vector<int> res;
        for(auto& q:queries){
            int n=q[0];
            int k=q[1];
            int sum=1;
            for(int i=2;i*i<=k;i++){
                if(k%i==0){
                    int cnt=0;
                    while(k%i==0){
                        cnt++;
                        k/=i;
                    }
                    sum=(LL)sum*c[n-1+cnt][cnt]%mod;
                }
            }
            if(k>1){
                sum=(LL)sum*n%mod;
            }
            res.push_back(sum);
        }
        return res;
    }
};

LC 1735. Count Ways to Make Array With Product

原文:https://www.cnblogs.com/FEIIEF/p/14327587.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!