CF - 246 - B. Increase and Decrease(贪心)

本文解析了CodeForces上的一道经典题目246/B,通过排除错误解法,最终给出了正确的贪心算法解决方案。讨论了如何通过操作使序列中尽可能多的元素相等。

题意:一个长为 n (1 ≤ n ≤ 10^5)的序列(元素(|ai| ≤ 10^4) ),可以取其中的两个数,一个数 + 1,另一个数就 - 1,可以这样操作无数次,问最后最多能有多少个数是一样的。

题目链接:http://codeforces.com/problemset/problem/246/B

——>>我觉得非常不错的题目,至少我被坑得团团转。。敲打

      第一种惯性思维:尽量地往平均数靠,答案为 n - 余数。。可惜,是错的。。

      第二种惯性改进思维:尽量地往平均数靠,答案为 max(n - 余数, 余数)。。可惜,还是错的。。

      贪心正解:无论数有多大,我都可以让 n - 1 个数变成 1,让第 n 个数独树一帜。。所以,答案的最小值为 n - 1。。

      当总和能被 n 整除,可以平分 n 数时,答案为 n 。。

#include <cstdio>

int main()
{
    int n, a;
    while (scanf("%d", &n) == 1)
    {
        int sum = 0;
        for (int i = 1; i <= n; ++i)
        {
            scanf("%d", &a);
            sum += a;
        }
        sum % n == 0 ? printf("%d\n", n) : printf("%d\n", n - 1);
    }

    return 0;
}


在 Vue 项目中使用 Element UI 的 `el-input-number` 组件时,若希望修改或隐藏输入框右侧的上下箭头(即浏览器默认的 `::-webkit-inner-spin-button` 控件),可以通过自定义 CSS 样式实现。 由于该伪元素仅适用于基于 WebKit 内核的浏览器(如 Chrome 和 Safari),因此需要结合 `-webkit-appearance` 属性进行样式重置,并通过其他属性控制其显示状态。以下为具体实现方式: ### 隐藏上下箭头 要隐藏默认的上下箭头,可以使用如下样式规则: ```css input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; } ``` 此规则移除了浏览器默认的控件外观,并清除了外边距以确保布局不受影响 [^2]。 ### 在 Firefox 中兼容性处理 Firefox 浏览器不支持 `::-webkit-inner-spin-button`,但可以通过设置 `-moz-appearance` 来隐藏数字输入框的上下按钮: ```css input[type="number"] { -moz-appearance: textfield; } ``` 这样可确保在不同浏览器下保持一致的外观 [^1]。 ### 在 scoped 样式中穿透子组件 如果样式作用域为 `scoped`,则上述规则不会直接生效于 `el-input-number` 内部的原生 `<input>` 元素。此时需使用 `::v-deep` 或 `:deep()` 实现样式穿透: ```css ::v-deep(input[type="number"]::-webkit-inner-spin-button), ::v-deep(input[type="number"]::-webkit-outer-spin-button) { -webkit-appearance: none; margin: 0; } ::v-deep(input[type="number"]) { -moz-appearance: textfield; } ``` 此方式允许在组件级样式中覆盖 Element UI 子组件的内部结构 [^3]。 ### 恢复默认行为或自定义显示逻辑 若希望仅在鼠标悬停时显示上下控件,可进一步扩展样式规则: ```css input[type="number"]::-webkit-inner-spin-button { display: none; } input:hover[type="number"]::-webkit-inner-spin-button { display: inline-block; } ``` 通过这种方式,可以在用户交互时恢复默认控件的显示效果,同时保持界面整洁 [^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值