USACO 3.1 humble numbers

来源:互联网 发布:千锋java培训怎么样 编辑:程序博客网 时间:2024/06/04 18:30

USACO 3.1 humble numbers

此题是poj1338 ugly number 的加强版。

大体做法是一样的。

 

我们的任务是根据当前的humble number来推出下一个这样的数。

很显然,“下个数” 一定是当前ans集合(Hnumber)中某个数乘上所给素数集合中某数得到的积。

我们可以设置K个指针pt,令pt[i]为第i个素数所指向的ans集合的下标,使得ans[pt[i]]*prime[i]的值正好是第i个素数能得到的“下个数”。

取K个这样的“下个数”最小值tt。并更新pt[i],使加上1。

可能存在重复数,更新的时候,应该是“下个数”为tt的pt[i]值都要更新。

复杂度显然是 O(K*N).

 

原创粉丝点击