2018.10.26 poj3421X-factor Chains(数论+排列组合)
传送门
排列组合入门题。
令X=p1a1p2a2..pkakX=p_1^{a_1}p_2^{a_2}..p_k^{a_k}X=p1a1p2a2..pkak
那么答案1就等于∑i=1kai\sum_{i=1}^ka_i∑i=1kai
答案2等于(∑i=1kai)!∏i=1ka[i]!\frac {(\sum_{i=1}^ka_i)!} {\prod_{i=1}^ka[i]!}∏i=1ka[i]!(∑i=1kai)!
边分解质因数边统计就行了。
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int N=1e6+5;
int tot=0,n,pri[N];
bool vis[N];
long long ans1,ans2,fac[25];
inline void init(){
fac[0]=1;
for(int i=1;i<=20;++i)fac[i]=fac[i-1]*i;
for(int i=2;i<=1e6;++i){
if(!vis[i])pri[++tot]=i;
for(int j=1;j<=tot&&i*pri[j]<=1e6;++j){
int k=i*pri[j];
vis[k]=1;
if(!(i%pri[j]))break;
}
}
}
int main(){
init();
while(~scanf("%d",&n)){
ans1=0,ans2=1;
for(int i=1;pri[i]*pri[i]<=n;++i){
if(!(n^1))break;
int a=pri[i],b=0;
if(n!=n/a*a)continue;
while(n==n/a*a)n/=a,++b;
ans1+=b,ans2*=fac[b];
}
if(n^1)++ans1;
cout<<ans1<<' '<<fac[ans1]/ans2<<'\n';
}
return 0;
}
2018.10.26 poj3421X-factor Chains(数论+排列组合)的更多相关文章
- 2018.10.26 浪在ACM 集训队第四次测试赛
2018.10.26 浪在ACM 集训队第四次测试赛 题目一览表 来源 考察知识点 完成时间 A 生活大爆炸版 石头剪刀布 NOIP 提高组 2014 模拟??? 2018.11.9 B 联合 ...
- 2018.10.26 浪在ACM 集训队第二次测试赛
2018.10.26 浪在ACM 集训队第二次测试赛 整理人:苗学林 A海港 参考博客:[1]:李继朋https://www.cnblogs.com/violet-acmer/p/9859006.ht ...
- POJ 3421 X-factor Chains (因式分解+排列组合)
题意:一条整数链,要求相邻两数前一个整除后一个.给出链尾的数,求链的最大长度以及满足最大长度的不同链的数量. 类型:因式分解+排列组合 算法:因式分解的素因子个数即为链长,链中后一个数等于前一个数乘以 ...
- 2018.10.26 bzoj2721: [Violet 5]樱花(数论)
传送门 推一波式子: 1x+1y=1n!\frac 1 x+\frac 1 y=\frac 1 {n!}x1+y1=n!1 =>xy−x∗n!−y∗n!xy-x*n!-y*n!xy−x∗n ...
- 2018.10.26 NOIP2018模拟赛 解题报告
得分: \(0+10+10=20\)(\(T1\)死于假题面,\(T3\)死于细节... ...) \(P.S.\)由于原题是图片,所以我没有上传题目描述,只有数据. \(T1\):颜料大乱斗(点此看 ...
- 2018.10.26 洛谷P4551 最长异或路径(01trie)
传送门 直接把每个点到根节点的异或距离插入01trie. 然后枚举每个点在01trie上匹配来更新答案就行了. 代码: #include<iostream> #include<cst ...
- 2018.10.26 NOIP训练 数数树(换根dp)
传送门 换根dpdpdp傻逼题好像不好码啊. 考虑直接把每一个二进制位拆开处理. 先dfsdfsdfs出每个点到1的异或距离. 然后分类讨论一波: 如果一个点如果当前二进制位到根节点异或距离为1,那么 ...
- 2018.10.26 NOIP模拟 图(最小生成树+线段树合并)
传送门 首先最开始说的那个一条路径的权值就是想告诉你两个点之间的贡献就是瓶颈边的权值. 那么肯定要用最小生成树算法. 于是我考场上想了30min+30min+30min+的树形dpdpdp 发现转移是 ...
- 2018.10.26 NOIP模拟 瓶子 (dp/贪心)
传送门 正解是dp并不想去想了. 自己yy了一个贪心拿了95pts95pts95pts,唯一没过的点还只有一个地方错了,面向数据变成之后过啦! 所以我讲讲如何贪心. 考虑到最后都只会合并成一种颜色,所 ...
随机推荐
- jakson
Java下常见的Json类库有Gson.JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换,下面给出一些Jackson的J ...
- http://ctf.bugku.com/challenges#%E6%B8%B8%E6%88%8F%E8%BF%87%E5%85%B3--游戏过关
做成功这道逆向题了,哈哈哈哈. 启程. 运行了一下子程序,发现它是要保证所有灯亮着才会给flag.如下图所示. 我聪明滴认为首先可以通过关键字符串找到关键代码位置哦. 1.找到关键代码 ...
- TZOJ 数据结构期末历年题目
A.数据结构练习题――线性表操作 线性表的基本操作 1.在某个位置p插入val,复杂度O(p) 2.在某个位置p删除val,复杂度O(p) 3.查找某个位置p的值,复杂度O(p) 4.清除链表,复杂度 ...
- Delphi: 模态窗体最小化
源起: 近期所介入的几个项目中,最后视频生成窗体,为一模态对话框.因生成时间可能较长,所以其窗体可以最小化,它最小化时同时最小化主程序,唤醒时主程序再复原. 代码亦是8年前本人所写,一直那样用了,也没 ...
- 10-okHttp的同步与异步
我的理解如下: 同步: 实时的在等待返回结果: 异步:可以不是同步执行的,放入到执行队列中. 所以建议:如果需要根绝请求的结构做些判断应当用 同步,异步可能由于时间先后出现问题. /*post异步请求 ...
- golang语言中sync/atomic包的学习与使用
package main; import ( "sync/atomic" "fmt" "sync" ) //atomic包提供了底层的原子级 ...
- stark组件开发之提取公共视图函数
路由问题, 已经解决! 然后就是视图函数的问题了: 不想重复写的解决途径就是, python 类的继承了! 写一个基类, 基类定义 增删改查. 然后其他的,全部去继承他! from django. ...
- python is 和 == 和=
Python中有很多运算符,今天我们就来讲讲is和==两种运算符在应用上的本质区别是什么. 在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识) ...
- devexpress 如何读demo源码 总结
对于初学这个庞大的控件集合的程序猿来讲应该是有些难度的.今天就devexpress demo 里边一些东西就本人的所学做一下引导吧. dev 有个帮助文件 DevExpress 中文帮助文档 和每个 ...
- ES6 WeakMap和WeakSet的使用场景
JavaScript垃圾回收是一种内存管理技术.在这种技术中,不再被引用的对象会被自动删除,而与其相关的资源也会被一同回收. Map和Set中对象的引用都是强类型化的,并不会允许垃圾回收.这样一来,如 ...