E卷-(100分)简单的自动曝光

简单的自动曝光

问题描述

给定一个长度为 的整数数组 ,表示一张图像的像素值,每个像素值的范围是 的整数。现在需要给每个像素值加上一个整数 (可以是负数),得到新的图像 ,使得 中所有像素的平均值最接近中位值 128。请计算并输出这个整数

输入格式

一行 个整数,用空格分隔,表示原图像 的像素值。

输出格式

一个整数

样例输入

样例 1

0 0 0 0

样例 2

129 130 129 130

样例输出

样例 1

128

样例 2

-2

样例解释

样例 1

原图像的四个像素值都为 0,加上 128 后,新图像的所有像素值变为 128,平均值正好是 128。

样例 2

时,新图像为 128 129 128 129,平均值为 128.5。 当 时,新图像为 127 128 127 128,平均值为 127.5。 两种情况下,127.5 更接近 128,且 -2 小于 -1,所以输出 -2。

数据范围

  • 如果有多个整数 都满足条件,输出较小的那个
  • 新图像的像素值会自动截取到 范围。当新像素值 时,其值会更改为 0;当新像素值 时,其值会更改为 255。

题解

这道题目的核心是找到一个整数 ,使得加上 后的新图像像素平均值最接近 128。

解题思路如下:

  1. 读取输入的像素值数组。
  2. 遍历可能的 值范围(-128 到 128)。
  3. 对于每个 ,计算新图像的平均值。
  4. 找出使平均值最接近 128 的

关键点在于处理像素值的边界情况。当新像素值小于 0 时,要将其设为 0;大于 255 时,要将其设为 255。这可以通过 max(0, min(255, val + i)) 来实现。

  • Python
# 读取输入
v = list(map(int, input().split()))
n = len(v)

res = float('inf')  # 初始化结果为无穷大
k = 0  # 初始化 k 为 0

# 遍历可能的 k 值
for i in range(-128, 129):
    su = 0
    # 计算新图像的像素和
    for val in v:
        su += max(0, min(255, val + i))
    # 计算平均值与 128 的差距
    t = abs(su / n - 128)
    # 更新结果
    if t < res:
        res = t
        k = i

# 输出结果
print(k)
  • C
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define MAX_N 100

int main() {
    int v[MAX_N];
    int n = 0;
    int x;

    // 读取输入
    while (scanf("%d", &x) == 1) {
        v[n++] = x;
    }

    double res = 1e9;
    int k = 0;

    // 遍历可能的 k 值
    for (int i = -128; i <= 128; i++) {
        int su = 0;
        // 计算新图像的像素和
        for (int j = 0; j < n; j++) {
            int val = v[j] + i;
            su += (val < 0) ? 0 : (val > 255) ? 255 : val;
        }
        // 计算平均值与 128 的差距
        double t = fabs((double)su / n - 128);
        // 更新结果
        if (t < res) {
            res = t;
       

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

算法刷题笔记 文章被收录于专栏

本专栏收集并整理了一些刷题笔记

全部评论
这道题暴力求解会不会超时www
点赞 回复 分享
发布于 05-20 10:36 天津
cpp/java/python/js/c
点赞 回复 分享
发布于 2024-11-08 11:12 江苏

相关推荐

SHC2:关键问题是你这三段实习是三个不同的岗位…你这样子秋招就是只有一段实习的本科生..
点赞 评论 收藏
分享
缒梦&独舞:这家公司是这样的,去年给我实习offer了,不过也是面着玩儿的,他周六还要去做公益志愿活动
点赞 评论 收藏
分享
评论
2
3
分享

创作者周榜

更多
牛客网
牛客企业服务