ACdream 1084 寒假安排(阶乘素因子分解)
题目链接:传送门
分析:
求A(n,m)转化成k进制以后末尾0的个数。对k素因子分解,第i个因子为fac[i],
第i个因子的指数为num[i],然后再对n的对A(n,m)进行素因子分解,设count[i]
代表fac[i]相应的指数,ans = min{count[i]/num[i] }
代码例如以下:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std; const int maxn = 1e6+10; typedef long long LL; int pri[maxn],cnt;
bool vis[maxn];
int fac[1000],num;
int Count[1000];
LL sum[maxn];
void init(){
memset(vis,0,sizeof(vis));
cnt=0;
for(int i=2;i<maxn;i++){
if(!vis[i]){
pri[cnt++]=i;
for(int j=i+i;j<maxn;j+=i) vis[j]=1;
}
}
} void getFactor(int x){
num=0;
memset(Count,0,sizeof(Count));
for(int i=0;i<cnt&&pri[i]*pri[i]<=x;i++){
if(x%pri[i]==0){
fac[num]=pri[i];
while(x%pri[i]==0) Count[num]++,x/=pri[i];
num++;
}
}
if(x>1) fac[num]=x,Count[num++]=1;
} LL getNum(int n,int p){
if(n<p) return 0;
return getNum(n/p,p)+(LL)n/p;
} int main()
{
init();
int t,n,m,k;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&m,&k);
getFactor(k);
LL ans = 1000000000;
//for(int i=0;i<num;i++) cout<<Count[i]<<" ";
//cout<<endl;
for(int i=0;i<num;i++){
//cout<<getNum(n,fac[i])<<" "<<getNum(m,fac[i])<<endl;
sum[i]=getNum(n,fac[i])-getNum(n-m,fac[i]);
ans=min(sum[i]/Count[i],ans);
}
printf("%lld\n",ans);
}
return 0;
}
ACdream 1084 寒假安排(阶乘素因子分解)的更多相关文章
- Acdream1084 寒假安排 求n!中v因子个数
题目链接:pid=1084">点击打开链接 寒假安排 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 128000/64000 ...
- HDU 3641 Treasure Hunting(阶乘素因子分解+二分)
题目链接:pid=3641">传送门 题意: 求最小的 ( x! ) = 0 mod (a1^b1*a2^b2...an^bn) 分析: 首先吧a1~an进行素因子分解,然后统计下每一 ...
- C语言程序设计I—寒假作业安排
20188402http://www.cnblogs.com/1793979463hyx/
- caioj 1084 动态规划入门(非常规DP8:任务安排)(取消后效性)
这道题的难点在于,前面分组的时间会影响到后面的结果 也就是有后效性,这样是不能用dp的 所以我们要想办法取消后效性 那么,我们就可以把影响加上去,也就是当前这一组加上了s 那么就把s对后面的影响全部加 ...
- HDU-4532 湫秋系列故事——安排座位 组合数学DP
题意:有来自n个专业的学生,每个专业分别有ai个同学,现在要将这些学生排成一行,使得相邻的两个学生来自不同的专业,问有多少种不同的安排方案. 分析:首先将所有专业的学生视作一样的,最后再乘以各自学生的 ...
- M - 约会安排 - hdu 4553
寒假来了,又到了小明和女神们约会的季节. 小明虽为�丝级码农,但非常活跃,女神们常常在小明网上的大段发言后热情回复“呵呵”,所以,小明的最爱就是和女神们约会.与此同时,也有很多基友找他开黑,由于数量 ...
- [Swust OJ 1084]--Mzx0821月赛系列之情书(双线程dp)
题目链接:http://acm.swust.edu.cn/problem/1084/ Time limit(ms): 1000 Memory limit(kb): 65535 Descriptio ...
- 约会安排HDU - 4553
寒假来了,又到了小明和女神们约会的季节. 小明虽为屌丝级码农,但非常活跃,女神们常常在小明网上的大段发言后热情回复"呵呵",所以,小明的最爱就是和女神们约会.与此同时,也有很多基 ...
- hdu 4553 约会安排
约会安排 http://acm.hdu.edu.cn/showproblem.php?pid=4553 Time Limit: 2000/1000 MS (Java/Others) Memory ...
随机推荐
- find命令专辑
find命令使用技巧 查找文件,移动到某个目录 使用find和xargs 15条 linux Find 命令实际使用方法 find 命令用法 find命令使用经验 find用法小结 find与xarg ...
- .NET:遇到并发问题,什么样的情况下需要自动重试?
背景 多用户系统会出现并发问题,应对并发问题的两种方式是“悲观锁”和“乐观锁”,多数情况下都会采用“乐观锁”,这引发了一个问题,如果检查出乐观并发异常如何重试?是让最终用户手工重试?还是让系统自动重试 ...
- pytest文档3-pycharm运行pytest
前言 上一篇pytest文档2-用例运行规则已经介绍了如何在cmd执行pytest用例,平常我们写代码在pycharm比较多 写完用例之后,需要调试看看,是不是能正常运行,如果每次跑去cmd执行,太麻 ...
- Combogrid的onChange和onSelect
这里只作记录一下 在easyui开发过程中遇到下边两个事儿 combogrid/combotree做级联: $("#" + deptId).combotree( { url : u ...
- ICLR 2014 International Conference on Learning Representations深度学习论文papers
ICLR 2014 International Conference on Learning Representations Apr 14 - 16, 2014, Banff, Canada Work ...
- hdu 1024 dp滚动数组
#include <cstdio> #include <iostream> #include <algorithm> #include <queue> ...
- 用sc命令查询系统状态
用sc命令查询系统状态 sc query 语法 sc query - Enumerates status for active services & driver ...
- (剑指Offer)面试题48:不能被继承的类
题目: 写一个不能被继承的类 思路: 1.把构造函数设为私有函数 在C++中子类的构造函数会自动调用父类的构造函数,子类的析构函数也会自动调用父类的构造函数,要想一个类不能被继承,只要把它的构造函数和 ...
- 使用javascript开发的视差滚动效果的云彩 极客标签 - 做最棒的极客知识分享平台
www.gbtags.com 使用javascript开发的视差滚动效果的云彩 阅读全文:使用javascript开发的视差滚动效果的云彩 极客标签 - 做最棒的极客知识分享平台
- xcode 模拟器,文档,离线安装
一:xcode上的模拟器,文档,在下载时,通过apple.com下载的速度太慢了,所以我们下载之后,做一下备份,离线安装还原就行了! 二:模拟器安装 目录:/Users/<user name&g ...