郑州seo网站排名,网站用户维护,如何分析网站的设计,django做网站快吗Blash数集 题目描述#xff1a; Blash集合对应以 a 为基数的集合 Ba 定义如下#xff1a; (1) a 是集合 Ba 的基数#xff0c;且 a 是 Ba 的第一个元素。 (2) 如果 x 在集合 Ba 中#xff0c;则 2x1 和 3x1 也都在集合Ba中。 (3) 没有其它元素在集合 Ba 中。 问将集合Ba中元…Blash数集 题目描述 Blash集合对应以 a 为基数的集合 Ba 定义如下 (1) a 是集合 Ba 的基数且 a 是 Ba 的第一个元素。 (2) 如果 x 在集合 Ba 中则 2x1 和 3x1 也都在集合Ba中。 (3) 没有其它元素在集合 Ba 中。 问将集合Ba中元素按照升序排列第n个元素会是多少 输入格式 输入包含很多行每行输入包括两个数字集合的基数 a 以及所求元素序号 n。 输出格式 对应每个输入输出集合 Ba 的第n个元素值。 解析 由于做队列的题不多考场上浪费了太多时间。 此题主要考察基础数据结构——队列。 这道题的难点在于如何判断重复的数字我们可以用队列维护保证每次加进去的是当前最小的数且与已加入队列尾的数不等就可以了。 代码 #include bits/stdc.h
using namespace std;const int Max1001000;
int a,n,t1,t2,head,tail;
int p[Max];inline int get_int()
{int x0,f1;char c;for(cgetchar();(!isdigit(c))(c!-);cgetchar());if(c-) {f-1;cgetchar();}for(;isdigit(c);cgetchar()) x(x3)(x1)c-0;return x*f;
}int main()
{//freopen(blash.in,r,stdin);//freopen(blash.out,w,stdout);while(scanf(%d%d,a,n)!EOF){t11;t21;head2;p[1]a;while(headn){int xp[t1]*21;int yp[t2]*31;int minnmin(x,y);if(xy) t1;else t2;if(minnp[head-1]) continue;p[head]minn;head;}coutp[n]\n;}return 0;
}