| 比赛 |
2026初中综合小练习 |
评测结果 |
AAAAT |
| 题目名称 |
求集合中最小的N个数 |
最终得分 |
80 |
| 用户昵称 |
星辰流浪 |
运行时间 |
1.125 s |
| 代码语言 |
C++ |
内存使用 |
25.29 MiB |
| 提交时间 |
2026-04-14 20:16:50 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int main() {
freopen("minvalinset.in","r",stdin);
freopen("minvalinset.out","w",stdout);
int n;
cin >> n;
set<long long> a;
priority_queue<long long, vector<long long>, greater<long long>> pq;
pq.push(1);
a.insert(1);
vector<long long> r;
for (int i = 0; i < n; ++i) {
long long c = pq.top();
pq.pop();
r.push_back(c);
long long n1 = 2 * c + 1;
long long n2 = 3 * c + 1;
if (a.find(n1) == a.end()) {
pq.push(n1);
a.insert(n1);
}
if (a.find(n2) == a.end()) {
pq.push(n2);
a.insert(n2);
}
}
for (int i = 0; i < n; ++i) {
cout << r[i] << " ";
}
return 0;
}