比赛 2026初中综合小练习 评测结果 AWWWW
题目名称 求集合中最小的N个数 最终得分 20
用户昵称 特朗普的儿子 运行时间 0.519 s
代码语言 C++ 内存使用 17.73 MiB
提交时间 2026-04-14 20:37:37
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<queue>
#include<map> 
#define N 
#define int long long
#define ul unsigned long long
#define db double
#define fo(i,l,r) for(int i=l;i<=r;i++)
#define rf(i,r,l) for(int i=r;i>=l;i--)
#define mem(x) memset(x,0,sizeof(x));
using namespace std;
int T,n,m,k,ans,op,x,y,z;
queue<int>q1,q2;
map<int,bool>mp;
void swap(int &x,int &y){int t=x;x=y;y=t;}
int max(int x,int y){return x>y?x:y;}
int min(int x,int y){return x<y?x:y;}
signed main(){
	freopen("minvalinset.in","r",stdin);freopen("minvalinset.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>n;
	cout<<1;
	q1.push(3);q2.push(4);
	while(--n){
		if(q1.front()<q2.front()){
			int u=q1.front();q1.pop();
			if(mp[u])continue;
			mp[u]=1;
			cout<<' '<<u;
			q1.push(u*2+1);
			q2.push(u*3+1);
		}
		else{
			int u=q2.front();q2.pop();
			if(mp[u])continue;
			mp[u]=1;
			cout<<' '<<u;
			q1.push(u*2+1);
			q2.push(u*3+1);
		}
	}
	return 0;
}