codevs-1246 丑数
2015-12-02 20:36
330 查看
codevs-1246 丑数
题目描述 Description
对于一给定的素数集合 S = {p1, p2, …, pK},
来考虑那些质因数全部属于S 的数的集合。这个集合包括,p1, p1p2, p1p1, 和 p1p2p3 (还有其它)。这是个对于一个输入的S的丑数集合。
注意:我们不认为1 是一个丑数。
你的工作是对于输入的集合S去寻找集合中的第N个丑数。longint(signed 32-bit)对于程序是足够的。
输入描述 Input Description
第 1 行: 二个被空间分开的整数:K 和 N , 1<= K<=100 , 1<= N<=100,000.
第 2 行: K 个被空间分开的整数:集合S的元素
输出描述 Output Description
单独的一行,写上对于输入的S的第N个丑数。
样例输入 Sample Input
4 19
2 3 5 7
样例输出 Sample Output
27
题目描述 Description
对于一给定的素数集合 S = {p1, p2, …, pK},
来考虑那些质因数全部属于S 的数的集合。这个集合包括,p1, p1p2, p1p1, 和 p1p2p3 (还有其它)。这是个对于一个输入的S的丑数集合。
注意:我们不认为1 是一个丑数。
你的工作是对于输入的集合S去寻找集合中的第N个丑数。longint(signed 32-bit)对于程序是足够的。
输入描述 Input Description
第 1 行: 二个被空间分开的整数:K 和 N , 1<= K<=100 , 1<= N<=100,000.
第 2 行: K 个被空间分开的整数:集合S的元素
输出描述 Output Description
单独的一行,写上对于输入的S的第N个丑数。
样例输入 Sample Input
4 19
2 3 5 7
样例输出 Sample Output
27
题解:贪心大法好
#include<iostream> #include<cstdio> #define MAXXX 0x7FFF using namespace std; int p[101],a[101]; long long f[100001]; int k,n; int main() { scanf("%d%d",&k,&n); for (int i=1;i<=k;i++) { scanf("%d",&p[i]); a[i]=0; } f[0]=1; long long MIN; for (int i=1;i<=n;i++) { MIN=MAXXX; for (int j=1;j<=k;j++) { while (p[j]*f[a[j]]<=f[i-1]) a[j]++; if (MIN>p[j]*f[a[j]]) MIN=p[j]*f[a[j]]; } f[i]=MIN; } printf("%lld",f ); return 0; }
相关文章推荐
- Optional变量的解析
- (十七)关于声明
- 多继承有什么坏处,为什么java搞单继承,接口为什么可以摈弃这些坏处
- 线段树
- mysql分区表管理
- OpenGL step by step - tutorial_4 "hello shader"
- Struts2 DomainModel、ModelDriven接收参数
- (十六)写代码时的风格
- Adreno GPU详细介绍
- 60个有趣的经济学定律!
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
- 从大数据菜鸟走上大师的历程 Scala 第十一讲 extends
- codevs-1043 方格取数
- 指令汇C电子市场开发(一) ActionBar的使用
- 懒加载
- 指令汇C电子市场开发(一) ActionBar的使用
- 指令汇C电子市场开发(一) ActionBar的使用
- 非递减子序列的最大长度
- 点餐系统的设计与实现注意点与解决办法
- 第十四周 知原理真题