1 条题解

  • 0
    @ 2025-8-24 21:16:52

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

    搬运于2025-08-24 21:16:51,当前版本为作者最后更新于2024-12-14 13:52:41,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    欢迎报名洛谷网校,期待和大家一起进步!

    本题考查一维数组。

    使用一维数组存储序列 AA,使用擂台法可以在读入的同时计算出序列 AA 的最大值和最小值。由于题目中保证了 ai105|a_i|\leq 10^5(即:105ai105-10^5\leq a_i\leq 10^5),因此最小值初始化为 100001100001,最大值初始化为 100001-100001 即可。这一部分的参考代码:

    int maxv = -100001, minv = 100001;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        maxv = max(maxv, a[i]); //获取序列的最大值
        minv = min(minv, a[i]); //获取序列的最小值
    }
    

    接着第二次循环,进行替换操作。根据题意,对于每个 aia_i,判断其是否大于 kk 或是小于 kk,若是则进行对应的替换,随后输出即可。这一部分的参考代码:

    for (int i = 1; i <= n; i++) {
        if (a[i] > k) //大于 k 替换为最大值
            a[i] = maxv;
        if (a[i] < k) //小于 k 替换为最小值
            a[i] = minv;
        cout << a[i] << " ";
    }
    
    • 1

    信息

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