数组的最小偏移量

1,
任意次数的话岂不是,
比较显然的做法…
全偶数/2,结果不会更坏。
ai=2^ri pi…
参数也不给清。
if pmax对应的a 是以2^ri pi的形式存在
因为 !i&2,且pi<=pmax,
则必存在2^ri pmax不会更坏。
因此将2^rp_\text{max}2
r
p
max

变成p_\text{max}p
max

答案不会更劣.
直觉下之后的做法是
尽量让其他数和它相近,
对于小于pmax的,尽量保持
对于大于pmax的,尽量除以2.
2,
std:: 是个名称空间标示符,C++标准库中的函数或者对象都是在命名空间std中定义的,所以我们要使用标准函数库中的函数或对象都要使用std来限定。
一般来说,std都是要调用C++标准库时,要写上std;

使用非标准库文件iostream.h,不用写。
3,
应该是某个数列模型感觉…
4,
终于知道为什么加std::,
这人咋变量明直接就用min和max。
5,
样例答案有差距一般是?
6,
int p_max=1;
for(int num:nums)
{
while(num%2==0) num/=2;
p_max=max(p_max,num);
}

    vector<int> upper;
    int min=p_max;
    for(int num:nums)
    {
        if(num%2==1) num*=2;
        if(num>=2*p_max) num/=2;
        if(num>=p_max) upper.push_back(num);
        min=std::min(min,num);
    }

    sort(upper.begin(),upper.end());
    int ans=upper.back()-min;
    for(int i=upper.size()-1;upper[i]>p_max;i-=1)
    {
        min=std::min(min,upper[i]/2);
        ans=std::max(ans,upper[i-1]-min);
    }
    return ans;
    woc。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面给出优化后的代码: ``` python import cv2 import numpy as np def local_contrast_enhancement(img, kernel_size, alpha=1.2, beta=0): """ 对图像的局部区域进行反差增强 :param img: 输入图像 :param kernel_size: 分割区域的大小,一般取奇数 :param alpha: 增益大小,取值范围为[1.0, 3.0] :param beta: 偏移量,取值范围为[-100, 100] :return: 增强后的图像 """ # 获取图像的宽高 height, width = img.shape[:2] # 分割图像,计算每个局部区域的最大灰度值和最小灰度值 new_img = np.zeros((height, width), dtype=np.uint8) for i in range(0, height-kernel_size, kernel_size): for j in range(0, width-kernel_size, kernel_size): # 计算分割区域的最大和最小灰度值 img_block = img[i:i+kernel_size, j:j+kernel_size] max_val = np.max(img_block) min_val = np.min(img_block) # 计算增益和偏移量 new_max = alpha * (max_val - min_val) new_min = beta * (max_val - min_val) # 对局部区域进行反差增强 img_block = cv2.convertScaleAbs(img_block, alpha=new_max, beta=new_min) new_img[i:i+kernel_size, j:j+kernel_size] = img_block return new_img ``` 我们首先定义了一个 `local_contrast_enhancement` 函数,它接受三个参数:输入图像、分割区域的大小和增益、偏移量参数。其中,输入图像是一个二维数组,分割区域的大小一般取奇数,增益和偏移量参数分别用于计算增益和偏移量。函数的返回值是增强后的图像。 在函数内部,我们首先获取了输入图像的宽高,然后分割图像,并计算每个局部区域的最大和最小灰度值。接着,我们根据最大和最小灰度值计算增益和偏移量,并对每个局部区域进行反差增强。最后,我们将增强后的局部区域合并成一个新的图像,并返回该图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值