UVA 1575 Factors
https://vjudge.net/problem/UVA-1575
题意:
令f(k)=n 表示 有n种方式,可以把正整数k表示成几个数的乘积的形式。
例 10=2*5=5*2,所以f(10)=2
给出n,求最小的k
搜索
从最小的质数开始枚举选几个
假设前i-1个种质数用了k个,有sum种方案,第i种质数选a个,
那么前i种质数的方案就有sum*C[k+a][a]
可以理解原来有k个位置,又加了a个位置,有a个数可以放在任意位置
所以前i种的每一种方案都变成C[k+a][a]种
枚举每个质数选几个时,如果上一个质数选了k个,那么这一个质数最多选k个
假设这个质数选了k+1个,那么显然上一个质数选k+1个,这个选k个更优
注意整数类型上限
- #include<cstdio>
- #include<iostream>
- using namespace std;
- typedef unsigned long long LL;
- int p[]={,,,,,,,,,,,,,,,,,,,,};
- LL ans,n;
- LL C[][];
- void solve(int num,int lim,LL tot,LL now,int last)
- {
- if(now>ans) return;
- if(tot==n) { ans=now; return ; }
- if(tot>n || num>) return;
- LL t=;
- for(int i=;i<=lim;i++)
- {
- t*=p[num];
- if(now>=ans/t) return;
- solve(num+,i,tot*C[last+i][i],now*t,last+i);
- }
- }
- int main()
- {
- C[][]=;
- for(int i=;i<;i++)
- {
- C[i][]=;
- for(int j=;j<=i;j++)
- C[i][j]=C[i-][j-]+C[i-][j];
- }
- while(scanf("%lld",&n)!=EOF)
- {
- if(n==)
- {
- printf("1 2\n");
- continue;
- }
- ans=(LL)<<;
- solve(,,,,);
- printf("%lld %lld\n",n,ans);
- }
- }
UVA 1575 Factors的更多相关文章
- UVA 160 - Factors and Factorials
Factors and Factorials The factorial of a number N (written N!) is defined as the product of all t ...
- 紫书 习题 10-25 UVa 1575 (有重复元素的全排列+暴搜)
我一开始以为有什么很牛逼的方法来做,然后一直没有思路 后来看了https://blog.csdn.net/zju2016/article/details/78562932的博客 竟然是暴搜?????? ...
- UVA 10699 Count the factors 题解
Time limit 3000 ms OS Linux Write a program, that computes the number of different prime factors in ...
- uva 129 krypton factors ——yhx
Krypton Factor You have been employed by the organisers of a Super Krypton Factor Contest in which ...
- UVa 884 - Factorial Factors
题目:输出n!中素数因数的个数. 分析:数论.这里使用欧拉筛法计算素数,在计算过程中求解就可以. 传统筛法是利用每一个素数,筛掉自己的整数倍: 欧拉筛法是利用当前计算出的全部素数,乘以当前数字筛数: ...
- UVa 11621 - Small Factors
称号:发现没有比给定数量少n的.只要2,3一个因素的数字组成. 分析:数论.贪婪,分而治之. 用两个三分球,分别代表乘法2,和繁殖3队列,队列产生的数字,原来{1}. 然后.每取两个指针相应元素*2和 ...
- UVa 10299 - Relatives
题目大意:Euler's Totient的应用. 几乎和UVa 10179 - Irreducable Basic Fractions一样,于是偷了个懒,直接用10179题的代码,结果WA了,感觉一样 ...
- UVA - 136 Ugly Numbers (有关set使用的一道题)
Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence1, 2, 3, 4, 5, 6, 8, 9, ...
- uva 1354 Mobile Computing ——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5
随机推荐
- 《JavaScript设计模式与开发实践》——第3章 闭包和高阶函数
闭包 变量的作用域和生存周期密切相关 高阶函数 函数可以作为参数被传递 函数可以作为返回值输出
- struts2 action json(还有servlet的)
http://yshjava.iteye.com/blog/1333104 留着 版权声明:本文为博主原创文章,未经博主允许不得转载.
- 《我是IT小小鸟》读笔
兴趣是第一原则.一定要根据自己的兴趣确定发展方向,不要盲目从众和跟风.没有一个人的经历是可以复制的,多思考,不要照搬他人的做法,学习一下想法还是可以的,具体方法因人而异.学习软件技术时,不仅在知识节点 ...
- Learn Docker(一)—软件安装与常规操作
一.安装Docker Windows平台 在Windows10 X64专业版上可以直接下载Docker原生应用进行安装,在控制面板的程序与功能里启用Hyper-v,之后就可以运行docker程序啦. ...
- rsyslog配置文件详解(rsyslog.conf)
# rsyslog configuration file # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html # ...
- Scrum 项目 5.0
5.0--------------------------------------------------- 1.团队成员完成自己认领的任务. 2.燃尽图:理解.设计并画出本次Sprint的燃尽图的理 ...
- 【Apache】ab工具
格式:ab [options] [http://]hostname[:port]/path -n requests Number of requests to perform //在测试会话中所执行 ...
- 【UNIX环境高级编程】线程同步
当多个线程共享相同的内存时,需要确保每个线程看到一致的数据视图.如果每个线程使用的变量都是其他线程不会读取和修改的,那么就不存在一致性问题.同样,如果变量是只读的也不会有一致性问题.但是,当一个线程可 ...
- 第103天:CSS3中Flex布局(伸缩布局)详解
一.Flex布局 Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box{ display: flex; } 行 ...
- 【bzoj3730】震波 动态点分治+线段树
题目描述 在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i].不幸的是,这片土地常常发生地震,并且随着时代的发展,城市 ...