跳到主要内容
原文144 词数1 分钟

题解:P9354 「SiR-1」Popsicle

概述

猫每次把某根雪糕棒上的数字减 1,把整数 n 全部减到 0 所需次数等于 n 的各位数字之和;老鼠能改动其中一个数字,让操作次数尽量多。若 n 含数字 0,把它改成 9 可多出 9 次;若不含 0,则在某位减到 1 时把 1 改成 9,多出 8 次。答案为各位数字之和再加 9 或 8。

解题思路​

对于猫猫,每次只能将一个雪糕棒的数字减 11。在没有小老鼠影响的情况下,操作次数为 nn 的各位数字之和。

对于小老鼠,只能改变一个数字,要使操作次数尽量多:

  • 如果有 00,最优策略是将 00 改成 99,使操作次数增加 99 次。
  • 否则没有 00,在猫猫把一个雪糕棒的数字减到 11 时,把 11 改成 99,使操作次数增加 88 次。

参考代码​

308 Bcpp
#include <bits/stdc++.h>
using namespace std;

using ll=long long;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin>>T;
while(T--)
{
ll n;
cin>>n;
int sum=0;
bool k=0;
while(n)
{
if(n%10==0)k=1;
sum+=n%10;
n/=10;
}
cout<<sum+(k?9:8)<<'\n';
}
return 0;
}