比赛 2026初中综合小练习 评测结果 AAAAT
题目名称 求集合中最小的N个数 最终得分 80
用户昵称 运行时间 1.201 s
代码语言 C++ 内存使用 3.68 MiB
提交时间 2026-04-14 19:35:23
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int n,a[1000005],m2,m3;
int main(){
    freopen("minvalinset.in","r",stdin);
    freopen("minvalinset.out","w",stdout);
    cin>>n;
    a[1]=1;
    cout<<1<<" ";
    for(int i=2;i<=n;i++){
        m2=a[i-1]*2+1;
        m3=a[i-1]*3+1;
        for(int j=i-1;j>=1;j--){
            if(2*a[j]+1<=a[i-1]){
                break;
            }
            
            m2=a[j]*2+1;
        }
        for(int j=i-1;j>=1;j--){
            if(3*a[j]+1<=a[i-1]){
                break;
            }
            
            m3=a[j]*3+1;
        }
        a[i]=min(m2,m3);
        cout<<a[i]<<" ";
    } 
}