NKOI 2419 集合的第N元素

集合的第N大元素

Time Limit:10000MS  Memory Limit:165536K
Total Submit:170 Accepted:107
Case Time Limit:1000MS

Description

有一个集合满足下面的关系:
1)1属于该集合;
2)如果x属于该集合,则2x+1和3x+1也属于该集合;
3)集合中再无其它的元素。
请你求出集合的前n小的元素。

Input

一个整数N(N<=200000)

Output

一行,N个不同的整数,由小到大排列,用空格间隔

Sample Input

5

Sample Output

1 3 4 7 9




此题为单调队列,开两个队列分别记录2x+1  3x+1的结果并在从1到n循环的过程中依次输出x,具体看下面代码

#include
#include
#include
using namespace std;
int n;
queueb,c;
int main(){
	scanf("%d",&n);
	int x=1;
	for(int i=1;i<=n;i++){
		printf("%d ",x);
		b.push(2*x+1);
		c.push(3*x+1);
		if(b.front()

你可能感兴趣的:(单调队列)