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

牛客周赛 46 F 祥子拆团

原题链接:F-祥子拆团

题目大意:多测,每次给a,b,要将a分解成b个数相乘,问有多少种分的方法。

思路:对a进行质因数分解,对每一个质数计数,然后分到b个篮子里面,允许篮子里面没有数,对全部的方案数相乘就是答案。d代表每个质数的数量,使用隔板法,如果允许篮子里面没有数的话,那么公式就是C\binom{b-1}{d+b-1},如果不允许有数可以理解成先给没个篮子放一个数,那么公式就是C\binom{b-1}{d-1}。因为允许没有数所以使用第一个公式。

//冷静,冷静,冷静
//调不出来就重构
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pii;
const int N=1e6+10,mod=1000000007;
ll ksm(ll a,ll b)
{ll ans=1;do{if(b&1)ans*=a;a*=a;b>>=1;a%=mod;ans%=mod;}while(b);return ans;
}
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll t;cin>>t;while(t--){ll a,b;cin>>a>>b;ll ans=1;for(int i=2;i<=a/i;i++){ll d=0;while(a%i==0){d++;a/=i;}ll sum=1;for(int j=b,k=1;j<=d+b-1;j++,k++){sum=sum*j;sum%=mod;sum=sum*ksm(k,mod-2)%mod;}ans*=sum;ans%=mod;}if(a>1){ll d=1,sum=1;for(int j=b,k=1;j<=d+b-1;j++,k++){sum=sum*j;sum%=mod;sum=sum*ksm(k,mod-2)%mod;}ans*=sum;ans%=mod;}cout<<ans<<endl;}return 0;
}

相关文章:

  • UE5 发射物目标追踪
  • CDN简介
  • freemarker 使用
  • Vue46-render函数
  • 收银系统源码-连锁店收银系统,支持二次开发
  • MYSQL(事务)
  • oracle发送邮件附件的步骤?怎么配置发信?
  • CUDA算子优化:矩阵乘GEMM优化(三)
  • Java 插入Mysql 报错:Column count doesn‘t match value count at row 1
  • 如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错:找不到匹配的 host key 算法
  • Linux下C程序的编写
  • 如何安全进行亚马逊、沃尔玛测评?
  • 【vue】终端 常用代码 和其他注意
  • 提高磁盘I/O速度的途径
  • 【C++】AVL树/红黑树实现及map与set的封装
  • $translatePartialLoader加载失败及解决方式
  • __proto__ 和 prototype的关系
  • 【comparator, comparable】小总结
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • github指令
  • iOS编译提示和导航提示
  • Javascript设计模式学习之Observer(观察者)模式
  • JavaScript新鲜事·第5期
  • JavaScript中的对象个人分享
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Mac转Windows的拯救指南
  • Node 版本管理
  • node入门
  • Otto开发初探——微服务依赖管理新利器
  • Python语法速览与机器学习开发环境搭建
  • Spark RDD学习: aggregate函数
  • windows下如何用phpstorm同步测试服务器
  • 初识MongoDB分片
  • 创建一个Struts2项目maven 方式
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 记录一下第一次使用npm
  • 设计模式 开闭原则
  • 新书推荐|Windows黑客编程技术详解
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • $.proxy和$.extend
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (1)虚拟机的安装与使用,linux系统安装
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (二)linux使用docker容器运行mysql
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (十六)、把镜像推送到私有化 Docker 仓库
  • (十三)Flask之特殊装饰器详解
  • (四)软件性能测试
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)c++ std::pair 与 std::make
  • (转)关于多人操作数据的处理策略
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .net Application的目录