首页 > 其他分享 >CF1288题解

CF1288题解

时间:2023-12-03 09:01:43浏览次数:37  
标签:CF1288 10 ch 题解 conc times le CF1288B

CF1288

Educational Codeforces Round 80 (Rated for Div. 2)

A略

CF1288B

link

CF1288B题意

  • 给定 \(A,B\),问有多少个二元组 \((a,b)\) 满足 \(1\le a \le A,1\le b\le B\) 且 \(a\cdot b+a+b=\operatorname{conc}(a,b)\)。其中 \(\operatorname{conc}(a,b)\) 表示将 \(a,b\) 拼接在一起,比如 \(\operatorname{conc}(12,23)=1223,\operatorname{conc}(100,11)=10011\),\(a,b\) 不能含有前导 \(0\)。

  • 本题有多组数据。令数据组数为 \(T\),\(T\le 100\),\(A\le 10^9\),\(B\le 10^9\)。

CF1288B题解

不妨设 \(b\) 的位数是 \(count(b)\)。
那么有

\[a\times(b+1)+b=a\times 10^{count(b)}+b\\ \iff a\times(b+1)=a\times 10^{count(b)}\\ \iff b+1=10^{count(b)} \]

发现这个式子与 \(a\) 无关,成立当且仅当 \(b=10^k-1\)。
不难发现这样的 \(b\) 形如 \(9,99,999,\dots,999\dots999\)(设成立的总数是 \(f(b)\))。
而只要 \(b\) 满足了,\(a\) 是什么都无所谓,答案就是 \(a\times f(b)\)。
没了。

CF1288B代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
    int x = 0, f = 1;char ch = getchar();
    while(ch < '0' || ch > '9'){if(ch == '-') f = -1;ch = getchar();}
    while(ch >= '0' && ch <= '9'){x = (x << 1) + (x << 3) + (ch ^ 48);ch = getchar();}
    return x * f;
}
signed main(){
int T = read();
while(T--){
    int a = read(), b = read();
    int cnt = 0,tmp = 1;
    while(tmp - 1 <= b){tmp *= 10;cnt++;}
    if(cnt)cnt--;
    printf("%lld\n",a * cnt);
}
    return 0;
}

标签:CF1288,10,ch,题解,conc,times,le,CF1288B
From: https://www.cnblogs.com/Call-me-Eric/p/17872588.html

相关文章

  • [ABC017D] サプリメント 题解
    题目传送门~一道DP前缀和优化好题。题目分析首先,朴素DP非常好想。可以从后向前考虑,设\(f_i\)表示从第\(i\)个补品开始的摄取方法数。摄取一个补品:\(f_i=f_{i+1}\)摄取两个补品:\(f_i=f_{i+2}\)以此类推。则转移方程为:\[f_i=f_{i+1}+f_{i+2}+\dots+f_{j......
  • P4143 采集矿石 题解
    题目传送门给出字符串\(s\),以及数组\(a_1\sima_{|s|}\)。定义一个子串的排名为:字典序比它大的本质不同的子串个数\(+1\)。定义一个子串\(s[l,r]\)的权值为\(\sum\limits_{i=l}^ra_i\)。求有多少个子串的排名等于权值。\(|s|\le10^5,0\lea_i\le1000\)。......
  • java: 未报告的异常错误java.io.UnsupportedEncodingException; 必须对其进行捕获或声
    原问题代码:/**MD5编码相关的类@authorwangjingtao*/publicclassMD5{//首先初始化一个字符数组,用来存放每个16进制字符privatestaticfinalchar[]hexDigits={'0','1','2','3','4','5','6','7'......
  • CF1790F题解
    思路令$dis_i$为离$i$最近的黑点距离,$ans$是距离最近的一对黑点距离,我们可以发现,每次$i\getsi+1$后$ans$的更新只会与$dis_{c_i}$有关,因为$c_i$是新的黑点,然后再从$c_i$来一次BFS更新$dis_i$即可。更详细的在注释。代码#include<bits/stdc++.h>......
  • [题解]AT_abc224_e [ABC224E] Integers on Grid
    比较符合CCF造数据水平的题。思路首先可以用两个vector<pair<int,int>>v[N]分别将每一行、每一列的元素的权值与编号存储下来。那么可以对所有的\(v_i\)按照权值从小到大排序。那么发现对于所有的满足v[i][p].fst<v[i][q].fst的\((p,q)\)都可以建一条从\(p\)指......
  • CSP第31次认证题解 2023.9
    A、坐标变换(其一)样例输入3210100010-201-100样例输出21-1120-10题解按照题目,一个循环即可#include<bits/stdc++.h>usingnamespacestd;#defineN200010#definelllonglongtemplate<classT>inlinevoidread(T&a){Tx=0,s=1;......
  • 使用Navicat For MSSQL连接绿色版SQLServer2008R2问题解决
    问题1、创建连接时出现错误:[IM002][Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序(0)Navicat来连接SQLserver,这里确实有点麻烦,出现错误[IM002][Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序(0),解决方法:进入Navicat的安装......
  • CF1368题解
    CF1368CodeforcesGlobalRound8ABC略。CF1368DlinkCF1368D题意给定\(n\)个非负整数\(a_1,\cdots,a_n\)。你可以进行如下操作:选择两个不同的下标\(i,j\)满足\(1\leqi,j\leqn\),并将\(a_i\getsa_i\\mathsf{AND}\a_j,\a_j\getsa_i\\mathsf{OR}\a_j\),两个赋值......
  • newstarctf2023 reverse 题解汇总
    newstarctf2023reverse题解汇总week1easy_REdie查无壳64直接IDA启动跟到main函数找到两部分flag拼起来就行了。flag{we1c0me_to_rev3rse!!}ELFdie查64ELFIDA启动稍微读一下写个py逆一下它的加密就行了flag{D0_4ou_7now_wha7_ELF_1s?}importbase64a="VlxRV......
  • ISCTFpwn的ezpie题解
    目前接触的随机好像都与地址有关,而且还有一个特性也就是只是基址随机,只要有任意一个地址就可以知道其他所有具体地址。(libc和pie保护)这里将通过ezpie这道题介绍绕过pie的一种方式,泄露地址一获取全部地址的方法。本人还不太懂partiallywrite的原理,就不误人子弟了。这里我们看到v5......