东方博宜【基础】1562. 加数

问题描述

给出一个正整数n(1≤n≤100000)。在n的右边加入n的一半,然后在新数的右边再加入n的一半的一半,一直进行,直到不能再加为止。
例如  n=37         37的一半为18(取整数)加到n的右边成为
        3718         18的一半为9,加到新数的右边成为
        37189        9的一半为4,加到新数的右边成为
        371894       4的一半为2,加到新数的右边成为
        3718942      2的一半为1,加到新数的右边成为
        37189421     1的一半为0,加数结束,最后得到的数是一个8位的数

输入

整数n

输出

加数结束后新数的长度。

样例

输入
37
输出
8

说明

来源
2015江苏省青少年信息学奥林匹克竞赛复赛

编辑代码

语言 C++

代码:

#include<bits/stdc++.h>

#include<string>

#include<algorithm>

using namespace std;

int a[105][105]={},i,j,s;

int ch(int n){
    
    int s=0;
    
    while(n>=1){
        
        s++;
        
        n=n/10;
        
    }
    
    return s;
    
}

int sh(int s){
    
    if(s==0){
        
        return 0;
        
    }
    
    else{
        
        return ch(s)+sh(s/2);
        
    }
    
}

int main(){
    
    cin>>s;
    
    cout<<sh(s);
    
}

制作不易,记得一键三连哦! 

### VDSR 超分辨率重建技术详解 VDSR(Very Deep Super-Resolution Network)是一种基于深度学习的单图像超分辨率重建(SISR, Single Image Super-Resolution)方法。它通过引入非常深的卷积神经网络结构来提升低分辨率图像的质量并恢复其细节。 #### 1. 基本概念与背景 VDSR 的核心思想在于利用深层卷积神经网络提取复杂的特征表示,从而更好地捕捉低分辨率图像到高分辨率图像之间的非线性映射关系[^1]。相比于早期的方法如 SRCNN(Super-Resolution Convolutional Neural Network),VDSR 使用更深的网络架构,在训练过程中能够更有效地减少误差并提高重建质量。 #### 2. 架构设计 VDSR 的网络由多个卷积层组成,通常包含 **20 层** 或更多层数。每一层都采用相同的滤波器大小(通常是 \(3 \times 3\))。为了保持梯度流动稳定,防止梯度消失问题,VDSR 提出了残差学习的概念: \[ F(x) = y - x \] 其中,\(x\) 表示输入的低分辨率图像经过双三次插值放缩后的初始估计;\(y\) 是目标高分辨率图像;而 \(F(x)\) 则代表需要学习的残差部分。这种策略使得模型更容易收敛,并显著提高了性能[^4]。 以下是 VDSR 网络的一个简化版本代码实现: ```python import torch.nn as nn class VDSR(nn.Module): def __init__(self, num_channels=64, num_layers=20): super(VDSR, self).__init__() layers = [] # 输入层 layers.append(nn.Conv2d(1, num_channels, kernel_size=3, padding=1)) layers.append(nn.ReLU(inplace=True)) # 中间隐藏层 for _ in range(num_layers - 2): layers.append(nn.Conv2d(num_channels, num_channels, kernel_size=3, padding=1)) layers.append(nn.BatchNorm2d(num_channels)) # 可选批量归一化 layers.append(nn.ReLU(inplace=True)) # 输出层 layers.append(nn.Conv2d(num_channels, 1, kernel_size=3, padding=1)) self.network = nn.Sequential(*layers) def forward(self, x): residual = x out = self.network(x) return out + residual ``` #### 3. 训练过程 在训练阶段,VDSR 需要大量的成对数据集作为监督信号。具体来说,每一对样本包括一张原始高质量图片以及对应的降质处理得到的低分辨率图片。损失函数一般定义为均方误差(MSE Loss),用于衡量预测结果与真实标签间的差异: \[ L(\theta) = \frac{1}{N} \sum_{i=1}^{N}(f_\theta(I_i^l)-I_i^h)^2 \] 这里,\(f_\theta\) 表示参数化的 CNN 模型;\(I_i^l\) 和 \(I_i^h\) 分别对应第 i 对中的低分辨率和高分辨率图像。 #### 4. 性能表现 实验表明,相比其他浅层网络或者传统算法,VDSR 不仅可以达到更高的 PSNR(Peak Signal-to-Noise Ratio)指标,而且还能有效保留边缘和其他重要视觉特性[^2]。此外,由于采用了端到端的学习方式,整个流程更加简洁高效。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值