zoukankan      html  css  js  c++  java
  • Codeforces 1288B

    题目大意:

    令conc(a,b)函数得出的结果为将ab拼接得到的数字。

    例如:conc(12,23)=1223

    a和b不会包括前导0!

    接下来,你已知A和B,问有多少对的(a,b)满足

    1≤a≤A , 1≤b≤B

    a*b+a+b=conc(a,b)

    解题思路:

    想法题,只需要满足b这个数字每一位全为9,那么等式 a*b+a+b=conc(a,b) 恒成立

    因为 a*b+a+b=a*(b+1)+b

    b+1为一个首位是1,其余位全为0的数,且长度为b的长度+1

    所以a*(b+1)+b相当于a*(Length(b)+1)+b,即满足conc(a,b)的功能

    故,只要计算1到B中有多少每一位全为9的数,再乘以A即可(a任取恒满足)

    注意,最坏情况下a有1e9种,b有9种,最大的答案为9e9,超出int范围,必须用long long

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const ll mod=1000000007;
    bool isnine(ll in){
        while(in){
            if(in%10!=9)
                return false;
            in/=10;
        }
        return true;
    }
    int len(ll in){
        int ans=0;
        do{
            in/=10;
            ans++;
        }while(in);
        return ans;
    }
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0);cout.tie(0);
        ll T,A,B,i,j,k;
        cin>>T;
        while(T--){
            cin>>A>>B;
            if(isnine(B))
                cout<<A*len(B)<<endl;
            else
                cout<<A*(len(B)-1)<<endl;
        }
        
        return 0;
    }
  • 相关阅读:
    宁波工程学院2020新生校赛C
    宁波工程学院2020新生校赛B
    宁波工程学院2020新生校赛A -恭喜小梁成为了宝可梦训练家~(水题)
    POJ 1611
    牛客算法周周练11E
    牛客算法周周练11C
    牛客算法周周练11A
    CodeForces 1176C
    CodeForces 445B
    UVALive 3027
  • 原文地址:https://www.cnblogs.com/stelayuri/p/12221292.html
Copyright © 2011-2022 走看看