USACO 3.1 Humble Numbers丑数
来源:互联网 发布:试客系统整站源码 编辑:程序博客网 时间:2024/04/30 04:44
Description
对于一给定的素数集合,来考虑那些质因数全部属于S 的数的集合。寻找集合中的第N个丑数。
Sample Input
4 19
2 3 5 7
Sample Output
27
题解:
时间复杂度o(nlog n)用一个小根堆就可以解决,注意不要重载long long 或int 的运算符,否则会导致错误.由小到大生产丑数,我们将生成的丑数存入一个优先队列(小根堆)。1.设1为丑数,将1出入堆;2.取出堆顶元素x,将x*p1,x*p2,...,x*pk存入堆中;3.重复上面的操作,第N+1次取出的堆顶元素,及是所求第N小的丑数
代码:
const maxn=100;var n,m:longint; s:array [0..100000] of longint; a:array [1..maxn] of longint; b:array [1..maxn] of longint;procedure init; var i:longint; begin readln(m,n); for i:=1 to m do begin read(a[i]); b[i]:=0; end; end;procedure main; var i,j,min,t,l:longint; begin s[0]:=1; l:=1; for i:=1 to n do begin while 1=1 do begin min:=maxlongint; t:=0; for j:=1 to m do if (s[b[j]]*a[j]<min) then begin min:=s[b[j]]*a[j]; t:=j; end; inc(b[t]); if l<>min then begin break; end; end; s[i]:=min; l:=min; end; end;begin init; main; writeln(s[n]);end.
1 1
- USACO 3.1.3 Humble Numbers 丑数
- USACO 3.1 Humble Numbers丑数
- USACO 3.1 Humble Numbers丑数
- USACO 3.1 丑数 Humble Numbers
- USACO : Humble Numbers (丑数)
- 【USACO题库】3.1.3 Humble Numbers丑数
- 【USACO题库】3.1.3 Humble Numbers丑数
- USACO 3.1 Humble Numbers丑数_优先队列
- 1278. 【USACO题库】3.1.3 Humble Numbers丑数
- usaco ★Humble Numbers 丑数
- Humble Numbers 丑数
- 【USACO题库】3.1.3 Humble Numbers丑数(模拟+数学)
- Humble Numbers(丑数)
- USACO 3.1 Humble Numbers (humble)
- USACO 3.1 Humble Numbers
- USACO 3.1 humble numbers
- USACO 3.1 Humble Numbers
- USACO--3.1Humble Numbers
- Ubuntu 16.04 install caffe and pycaffe
- pycharm注册, pycharm激活
- t-SNE初学
- UGUI -- 原生Sprite 处理小扩展
- Java基础知识-if条件语句的使用介绍
- USACO 3.1 Humble Numbers丑数
- 简单的贴图融合
- [工具]VS2013下载地址
- IQKeyboardManager简单实用
- HDU 1003 最大连续子段和
- shell中$@和$*的区别
- 5.Git代码<安装与配置>-2(自我整理) 2016/11/12
- 火力点
- 最优化方法综述