【题解-信息学奥赛一本通】1333:【例2-2】Blah数集
题目1333【例2-2】Blah数集题目描述大数学家高斯小时候偶然间发现一种有趣的自然数集合Blah对于以a为基的集合Ba定义如下(1)a是集合Ba的基且a是Ba的第一个元素(2)如果x在集合Ba中则2x1和3x1也都在集合Ba中(3)没有其他元素在集合Ba中了。现在小高斯想知道如果将集合Ba中元素按照升序排列第N个元素会是多少输入输入包括很多行每行输入包括两个数字集合的基a(1≤a≤50))以及所求元素序号n(1≤n≤1000000)。输出对于每个输入输出集合Ba的第n个元素值。时空限制1s / 64MB样例输入1 100 28 5437样例输出418 900585代码#includebits/stdc.husingnamespacestd;constintN1e610;intn,x;intmain(){while(cinxn){queueintq2,q3;q2.push(x),q3.push(x);while(n--){intx1q2.front(),x2q3.front();if(x1x2){q2.pop();xx1;}elseif(x2x1){q3.pop();xx2;}else{q2.pop();q3.pop();xx1;}q2.push(x*21);q3.push(x*31);}coutxendl;}return0;}结果