1 条题解

  • 0
    @ 2025-8-24 22:48:17

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Eason_cyx
    Play like you never did before?

    搬运于2025-08-24 22:48:17,当前版本为作者最后更新于2023-06-26 16:25:54,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    一道比较简单的构造题。

    我们首先从最简单的情况来看。

    SSnn 的倍数的时候,那么问题就转化成了将 SS 平均分成 nn 份,那么只需要输出 nnSn\large\frac{S}{n} 就可以了。

    那么我们来考虑其他情况,即 SS 不是 nn 的倍数。我们先按前面的方法处理,此时会剩下 SmodnS \bmod n。此时方法也很简单,将后 SmodnS \bmod n 个数 +1+1 就可以了。

    整理一下,得到以下结论:

    组成答案序列的 nn 个数中,前 n(Smodn)n - (S \bmod n) 个数为 Sn\large\frac{S}{n},后 SmodnS \bmod n 个数为 Sn+1\large\frac{S}{n}\small+1

    推出了结论,代码就好写了。

    #include <iostream>
    using namespace std;
    int main() {
        long long n,m,k,s; cin >> n >> m >> k >> s;
        for(int i = 1; i <= n - (s % n);i++) cout << s / n << ' ';
        for(int i = 1; i <= s % n;i++) cout << s / n + 1 << " \n"[i == (s%n)];
        return 0;
    }
    
    • 1

    信息

    ID
    8599
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者