题目链接: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)相关推荐

  1. 【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 ...

  2. Number With The Given Amount Of Divisors(反素数)

    Given the number n, find the smallest positive integer which has exactly n divisors. It is guarantee ...

  3. 【数学】【CF27E】 Number With The Given Amount Of Divisors

    传送门 Description 给定一个正整数\(n\),输出最小的整数,满足这个整数有n个因子 Input 一行一个整数\(n\) Output 一行一个整数,代表答案. Hint \(1~\leq ...

  4. CodeForces 991E Bus Number DFS+ 组合数

    CodeForces 991E Bus Number DFS+ 组合数 题目大意:给定一个数字,数字里出现的每一个数,都至少要用一个,问能组成多少个新数,不加前导零. input: 2028 outp ...

  5. Codeforces 40 E. Number Table

    题目链接:http://codeforces.com/problemset/problem/40/E 妙啊... 因为已经确定的格子数目严格小于了$max(n,m)$,所以至少有一行或者一列是空着的, ...

  6. Codeforces 55D Beautiful Number (数位统计)

    把数位dp写成记忆化搜索的形式,方法很赞,代码量少了很多. 下面为转载内容:  a positive integer number is beautiful if and only if it is  ...

  7. 第11期《codeforces 1167A - Telephone Number 题解 》

    题目描述如下: A. Telephone Number time limit per test 1 second memory limit per test 256 megabytes input s ...

  8. codeforces 124A The number of positions

    点击打开链接 A. The number of positions time limit per test 0.5 second memory limit per test 256 megabytes ...

  9. Codeforces 1499D - The Number of Pairs(数论 + 组合计数)

    昨晚的cf没打,然后有人QQ问我D来着,正好在上毛概课可以划水就来口胡一波题解( 较为简单的套路题 ? (逃 简单实现一下就行了 ~ #include <bits/stdc++.h>usi ...

  10. Codeforces 991E. Bus Number (DFS+排列组合)

    解题思路 将每个数字出现的次数存在一个数组num[]中(与顺序无关). 将出现过的数字i从1到num[i]遍历.(i from 0 to 9) 得到要使用的数字次数数组a[]. 对于每一种a使用排列组 ...

最新文章

  1. Download interrupted: URL not found.
  2. 【Manning新书】Kafka实战
  3. mac 用惠普扫描仪扫描提示将对您的电脑造成伤害_惠普全能打印神器测评:15秒智能闪充、打一张仅需5分钱...
  4. 一名毕业生的自述:我知道我必须写论文,但没聪明到可以写出来......
  5. 什么是Windows RT
  6. 跑路后再删库?思科前员工离职后恶意删库,损失达 240 万美元!
  7. express基本原理
  8. tuxedo 强制重启
  9. Consul实践之Consul常见应用场景及方案梳理(FAQ)
  10. HDU 5353 Average 贪心
  11. web和python哪个好_用python开发app和web哪个比较容易?
  12. MySQL索引的原理,B+树、聚集索引和二级索引的结构分析
  13. 读书摘要——矇矇的秘密基地(关于DODAF)
  14. otf VS ttf images
  15. 《算法刷题LeetCode(中文版)》
  16. 中国“古诗词”数据库还有可用的API
  17. 浅谈 Mousewheel 事件
  18. 计算机网络从使用对象上划分为,计算机网络练习题卷1-2章.doc
  19. 2019年北航、南大、东南、上科大及本校计算机系保研
  20. java freemarker 动态生成word,再转pdf

热门文章

  1. 手把手教你python实现量价形态选股知乎_Python实现量化选股
  2. 20岁生日 nyoj 312(闰年算法)
  3. python对象和类_Python面向对象(一)类与对象
  4. 语言纸对折的厚度编写代码_分享几款由“Python”语言编写的“有趣、恶搞、好玩”的程序代码...
  5. 赤池信息量准则 ( Akaike information criterion)-统计学术语
  6. php比较输入数字大小,jquery怎么比较两个数字大小
  7. zip gbk java,java 解压 ZIP 中文 乱码 GBK UTF-8 完美解决方案
  8. php 包含截断,php – 表单包含大量输入时截断/缺少表单...
  9. php想做一个无刷新弹窗,php+ajax实现无刷新的新闻留言系统
  10. 使用折半查找法查找数组中的元素