problem descriptioninputpanda是個數學怪人,他非常喜歡研究跟別人相反的事情。最近他正在研究篩法,眾所周知,對乙個範圍內的整數,經過篩法處理以後,剩下的全部都是質數,不過panda對這些不感興趣,他只對被篩掉的數感興趣,他覺得在這些被篩掉的數中一定隱藏著重要的宇宙秘密,只是人們還沒有發現罷了。
panda還覺得如果只是單純地從小到大篩的話,還不足夠發現其中的奧秘,於是他決定對至多只包含某些質因數的數進行研究(比如說至多只包含質因數2,3的數有2,3,4,6,8,9,……),他需要得到這些數中第k小的數(k是panda認為的宇宙係數),請你編個程式,幫助他找到這個數。
第1行有2個數n,k,n代表質因數的個數,k代表那個宇宙係數(1<=n<=100,1<=k<=100000)output第2行有n個數,代表這n個質因數。(每個均小於1000,且不相同)
僅1行,即至多只包含這n個質因數的數中第k小的數。(這個數不會超過2000000000)sample input
2 7sample output3 5
45(前6個分別是3,5,9,15,25,27)
這個是 ac 了的程式。
#include
int n,k,cnt;
int a[1005],b[1005],ans[100005];
int main()
b[minx]++;
if (min!=ans[cnt]) ans[++cnt]=min;
}printf("%d",ans[k]);
}
這個是乙個同學寫的,用了優先佇列 stl,結果處理不好空間爆了。
#include
#include
#include
#define n 110
using
namespace
std;
typedef
long
long ll;
priority_queuevector
,greater>q;
ll ans,x,pre;
int n,m,a[n],tot;
int main()
while(!q.empty()&&totif(x==pre)continue;
tot++;
ans=x;
for(int i=1;i<=n;i++) q.push(x*a[i]);
pre=x;
}cout
<
hdu2527(哈夫曼樹)
題意 建完樹後,判斷下除了葉子結點之外的其他結點之和是否大於題目給出的數字。思路 如果了解哈夫曼樹,就會知道,它是拿出一串數中兩個權值最小的,合成乙個新的,再將這個新形成的加入到那個串中,再操作.這樣,就可以用優先佇列來模擬建哈夫曼樹的過程,從而ac此題。注意 此題有坑,被它弄wa了2次,就是當它有...
BZOJ 2527 Meteors(整體二分)
description 有n個國家和m個空間站,每個空間站都屬於乙個國家,乙個國家可以有多個空間站,所有空間站按照順序形成乙個環,也就是說,m號空間站和1號空間站相鄰。現在,將會有k場流星雨降臨,每一場流星雨都會給區間 li,ri 內的每個空間站帶來ai單位的隕石,每個國家都有乙個收集隕石的目標pi...
Luogu P1208 混合牛奶
這個題目直接開個結構體按 排序,然後一直加加加,就可以了。典型的貪心。include include include include include include using namespace std int i,m,n,j,k,ans struct mana 5001 bool cmp man...