Codeforces B. Minor Reduction

Codeforces B. Minor Reduction,第1张

Codeforces B. Minor Reduction

 

思路:

注意分类讨论,首先如果选出的两个数加起来小于10,那序列位数减少,值必然变小 ,但相对于这一位来说必然变大(如2+3=5)或者不变(如1+0=1),所以必须让这种情况尽量靠前。如果两个数加起来大于10,那相对于这两位来说必然变小(如2+8=10)或者不变(1+9=10),所以必须让这种情况尽量靠后。由于这两种情况的处理方法是对立的,所以分两种情况,存在加起来大于10的情况和不存在加起来大于10的情况分别讨论。

Code:

#include 
#include 
#include 
#include 
using namespace std;
const int N = 1;

void solve()
{
    string s;
    cin>>s;
    int len=s.size();
    for(int i=len-1;i;i--)
    {
        int now=(s[i]-'0')+(s[i-1]-'0');
        if(now>=10)
        {
            
            s[i]=now%10+'0';
            s[i-1]=now/10+'0';
            cout<>_;
    while(_--) solve();
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5713995.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存