1 条题解

  • 0
    @ 2026-1-27 19:35:50
    #include<bits/stdc++.h>
    using namespace std;
    
    long long n;  // [1] n-输入的正整数,表示要划分的数的范围是1~n
    
    int main(){
        cin>>n;
        // 特殊情况:当n=1时,只有一个数1,无需划分,堆数为1
        if(n==1){
            cout<<1;
        }else{
            // 核心思路:所有偶数都包含质因数2,因此两两不互质,必须分到不同堆中
            // 最少堆数等于1~n中偶数的数量(n/2向下取整)
            // 例如n=5时,偶数有2、4共2个,所以最少需要2堆
            cout<<n/2;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    1380
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者