codeforces 27 E. Number With The Given Amount Of Divisors(数论+dfs)
题目链接:http://codeforces.com/contest/27/problem/E
题意:问因数为n个的最小的数是多少。
题解:一般来说问到因数差不多都会想到素因子。
任意一个数x=(p1^a1)*(p2^a2)*(p3^a3)*......*(pn^an);p表示素数。
然后因子数就是ans=(a1+1)*(a2+1)*(a3+1)*....*(an+1) 这个很显然。然后要使得x最小而且ans最大
显然要优先选择最小的素数。
拿12=(2^2)*3为样例可以建一个搜索树于是dfs就可以按照这棵树来写。
//deep表示深度也就是素数的种类,sum表示组成的数,然后num表示因数个数,由于n最多为1000,2^10次为1024,所以理论上只要存10个素数就行了。
void dfs(int deep , ull sum , int num) {
if(num == n) ans = min(ans , sum);
for(int i = 1 ; i <= 1000 ; i++) {
if(num * (i + 1) > n || sum * prime[deep] > ans) break;//很明显的一个剪枝
dfs(deep + 1 , sum * prime[deep] , num * (i + 1));
sum *= prime[deep];
}
}
#include <iostream>
using namespace std;
typedef unsigned long long ull;
ull ans;
int prime[16] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53} , n;
void dfs(int deep , ull sum , int num) {if(num == n) ans = min(ans , sum);for(int i = 1 ; i <= 1000 ; i++) {if(num * (i + 1) > n || sum * prime[deep] > ans) break;dfs(deep + 1 , sum * prime[deep] , num * (i + 1));sum *= prime[deep];}
}
int main() {cin >> n;ans = ULLONG_MAX;dfs(0 , 1 , 1);cout << ans << endl;return 0;
}
转载于:https://www.cnblogs.com/TnT2333333/p/6893237.html
codeforces 27 E. Number With The Given Amount Of Divisors(数论+dfs)相关推荐
- 【CodeForces - 27E】Number With The Given Amount Of Divisors (数论,数学,反素数)
题干: Given the number n, find the smallest positive integer which has exactly n divisors. It is guara ...
- Number With The Given Amount Of Divisors(反素数)
Given the number n, find the smallest positive integer which has exactly n divisors. It is guarantee ...
- 【数学】【CF27E】 Number With The Given Amount Of Divisors
传送门 Description 给定一个正整数\(n\),输出最小的整数,满足这个整数有n个因子 Input 一行一个整数\(n\) Output 一行一个整数,代表答案. Hint \(1~\leq ...
- CodeForces 991E Bus Number DFS+ 组合数
CodeForces 991E Bus Number DFS+ 组合数 题目大意:给定一个数字,数字里出现的每一个数,都至少要用一个,问能组成多少个新数,不加前导零. input: 2028 outp ...
- Codeforces 40 E. Number Table
题目链接:http://codeforces.com/problemset/problem/40/E 妙啊... 因为已经确定的格子数目严格小于了$max(n,m)$,所以至少有一行或者一列是空着的, ...
- Codeforces 55D Beautiful Number (数位统计)
把数位dp写成记忆化搜索的形式,方法很赞,代码量少了很多. 下面为转载内容: a positive integer number is beautiful if and only if it is ...
- 第11期《codeforces 1167A - Telephone Number 题解 》
题目描述如下: A. Telephone Number time limit per test 1 second memory limit per test 256 megabytes input s ...
- codeforces 124A The number of positions
点击打开链接 A. The number of positions time limit per test 0.5 second memory limit per test 256 megabytes ...
- Codeforces 1499D - The Number of Pairs(数论 + 组合计数)
昨晚的cf没打,然后有人QQ问我D来着,正好在上毛概课可以划水就来口胡一波题解( 较为简单的套路题 ? (逃 简单实现一下就行了 ~ #include <bits/stdc++.h>usi ...
- Codeforces 991E. Bus Number (DFS+排列组合)
解题思路 将每个数字出现的次数存在一个数组num[]中(与顺序无关). 将出现过的数字i从1到num[i]遍历.(i from 0 to 9) 得到要使用的数字次数数组a[]. 对于每一种a使用排列组 ...
最新文章
- Download interrupted: URL not found.
- 【Manning新书】Kafka实战
- mac 用惠普扫描仪扫描提示将对您的电脑造成伤害_惠普全能打印神器测评:15秒智能闪充、打一张仅需5分钱...
- 一名毕业生的自述:我知道我必须写论文,但没聪明到可以写出来......
- 什么是Windows RT
- 跑路后再删库?思科前员工离职后恶意删库,损失达 240 万美元!
- express基本原理
- tuxedo 强制重启
- Consul实践之Consul常见应用场景及方案梳理(FAQ)
- HDU 5353 Average 贪心
- web和python哪个好_用python开发app和web哪个比较容易?
- MySQL索引的原理,B+树、聚集索引和二级索引的结构分析
- 读书摘要——矇矇的秘密基地(关于DODAF)
- otf VS ttf images
- 《算法刷题LeetCode(中文版)》
- 中国“古诗词”数据库还有可用的API
- 浅谈 Mousewheel 事件
- 计算机网络从使用对象上划分为,计算机网络练习题卷1-2章.doc
- 2019年北航、南大、东南、上科大及本校计算机系保研
- java freemarker 动态生成word,再转pdf
热门文章
- 手把手教你python实现量价形态选股知乎_Python实现量化选股
- 20岁生日 nyoj 312(闰年算法)
- python对象和类_Python面向对象(一)类与对象
- 语言纸对折的厚度编写代码_分享几款由“Python”语言编写的“有趣、恶搞、好玩”的程序代码...
- 赤池信息量准则 ( Akaike information criterion)-统计学术语
- php比较输入数字大小,jquery怎么比较两个数字大小
- zip gbk java,java 解压 ZIP 中文 乱码 GBK UTF-8 完美解决方案
- php 包含截断,php – 表单包含大量输入时截断/缺少表单...
- php想做一个无刷新弹窗,php+ajax实现无刷新的新闻留言系统
- 使用折半查找法查找数组中的元素