首页 > 其他分享 >P9538最大和

P9538最大和

时间:2023-09-29 20:49:02浏览次数:29  
标签:10 a% 最大 int sum P9538 当前 总和

题目简化

给你一个数,从它的个位到最高位进行操作,对于其每一位,你可以选择让他增加 \(1\),减少 \(1\)(如果当前位是 \(0\),减 \(1\) 后会退位) 或者不变。

分析

要使每一位的总和最大,我们可以对每一位进行判断。

  • 如果当前位不是 \(0\) 和 \(9\),那么显然要加一。如:\(12\),最大总和即为每一位加一再相加。

  • 如果当前位是 \(0\) 就减一。简单证明: \(-1\) 后,当前位变成 \(9\),下一位因为退位需要 \(-1\)。这样子总和增加了 \(9-1=8\),显然比增加 \(1\) 更优。如 \(100\),最大总和即为个位减一再相加 \((99)\)。当然,如果 \(a=0\) 就要特判。

  • 当前位上的数值为 \(9\) 时,不需要操作,证明平凡,和上面相似。

代码:

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	while(n--){
		int a,sum=0;
		cin>>a;
		if(a==0) sum=1;//特判
		else {
			while(a!=0){
				if(a%10==0) a-=1;//当前值为0时
				else if(a%10!=9) a+=1;//当前值为1~8时
				//为9时不变
				sum+=(a%10);//加和
				a/=10;
			}
		}
		cout<<sum<<endl;
	}
	return 0;
}

标签:10,a%,最大,int,sum,P9538,当前,总和
From: https://www.cnblogs.com/splay/p/17737234.html

相关文章

  • TCP/IP连接数的最大值取决于操作系统、硬件和应用程序等多个因素
    TCP/IP连接数的最大值取决于操作系统、硬件和应用程序等多个因素。下面是一些常见操作系统中TCP/IP连接数的默认值和最大值:Windows10/WindowsServer2019:默认值为16384,最大值为16777216Windows8/WindowsServer2012:默认值为16384,最大值为16777216Windows7/WindowsServer......
  • 最大上升子序列和
    题目概述:给定一个序列,求解该序列的最大上升子序列的和解题思路:我们在LIS的集合定义为:以i结尾的上升子序列的最大长度,那其实我们只需要将集合定义改为:以i结尾的上升子序列的最大和即可。#include<iostream>#include<algorithm>#include<cstring>#include<set>#include<v......
  • R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证
    全文链接:http://tecdat.cn/?p=31162最近我们被客户要求撰写关于SV模型的研究报告,包括一些图形和统计输出。本文做SV模型,选取马尔可夫蒙特卡罗法(MCMC)、正则化广义矩估计法和准最大似然估计法估计。模拟SV模型的估计方法:  sim<-svsim(1000,mu=-9,phi=0.97,sigma......
  • java用Stream一行代码实现数据分组统计、排序、最大值、最小值、平均值、总数、合计
    getAverage():它返回所有接受值的平均值。getCount():它计算所有元素的总数。getMax():它返回最大值。getMin():它返回最小值。getSum():它返回所有元素的总和。示例:@GetMapping("/list")publicvoidlist(){List<InputForm>inputForms=inputFormMapper.se......
  • 力扣-2769-找出最大的可达成数字
    给你两个整数num和t。如果整数x可以在执行下述操作不超过t次的情况下变为与num相等,则称其为可达成数字:每次操作将x的值增加或减少1,同时可以选择将num的值增加或减少1。返回所有可达成数字中的最大值。可以证明至少存在一个可达成数字。 示例1:输入:num=......
  • GAN之最大最小博弈
    我们已经知道,GAN使用的损失函数为特殊的二进制交叉熵函数(BCELoss),公式常写作\[\mathop{min}\limits_G\mathop{max}\limits_DV(D,G)=\mathbb{E}_{x\simPdata(x)}[logD(x)]+\mathbb{E}_{z\simPz(z)}[log(1-D(G(z)))]\]但是,这其中的\(\mathop{min}\limits_G\mathop{ma......
  • LeetCode 918. 环形子数组的最大和
    环形子数组的最大和(medium)题目链接:918.环形子数组的最大和题目描述:给定一个长度为n的环形整数数组nums,返回nums的非空子数组的最大可能和。环形数组意味着数组的末端将会与开头相连呈环状。形式上,nums[i]的下一个元素是nums[(i+1)%n],nums[i]的前一个元素......
  • LeetCode 53. 最大子数组和
    最大子数组和(medium)题目链接:53.最大子数组和题目描述:给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1]的和最大......
  • 完备子集的最大元素和
    给你一个下标从1开始、由n个整数组成的数组。如果一组数字中每对元素下标的乘积都是一个完全平方数,则称这组数字是一个完全集。返回下标集{1,2,...,n}的完全子集所能取到的最大元素和1.数学方法这里选择从下而上,类似质数筛的方式进行枚举满足条件的完备集合思考......
  • 递归求最大值
    #include<bits/stdc++.h>usingnamespacestd;intt,n,a;intf(intn[],inta){ if(a==1){ t=n[1]; }else{ if(f(n,a-1)>n[a]){ t=f(n,a-1); }else{ t=n[a]; } } returnt;}intmain(){ intn[6],x; for(inti=0;i<5;i++){ cin>&g......