0
已解决
全国青少年信息素养大赛复赛初中组T5:
题目描述 Description
令 若,, 则范围内里有多少对满足 ?
输入描述 Input Description
一行,两个整数,。
输出描述 Output Description
一行,一个整数表示满足条件的数量。
样例输入 Sample Input
54 1000
样例输出 Sample Output
162
数据范围及提示 Data Size & Hint
慎用暴力,“测试”三个点不过
参考暴力代码:
#include<iostream>
#include<sstream>
using namespace std;
int n,m,res=0;
int main(){
cin>>n>>m;
for(int a=1;a<=n;a++){
for(int b=1;b<=m;b++){
stringstream ss;
ss<<a<<b;
long long g;
ss>>g;
long long r=(long long)(a+1)*(b+1)-1;
if(g==r){
res++;
//cout<<a<<' '<<b<<' '<<g<<endl;
}
}
}
cout<<res;
return 0;
}
参考找规律代码:
#include<iostream>
using namespace std;
int n,m;
int cnt;
int main(){
cin>>n>>m;
for(int i=9;i<=m;i=i*10+9){
cnt++;
}
cout<<cnt*n;
return 0;
}
规律分析: 若题目我没记错,则使用暴力方法枚举出的符合条件的数对部分如图。 注意到,应是 且 的所有整数与 ....(各位为9的叠数,) 构成符合条件的数对, 故计算小于的各位皆是9的叠数的数量与相乘即可。 数学证明:
PS:代码不知是否正确,题干不知是否准确
倪雨泽在2025-07-14 15:07:54追加了内容

倪雨泽在2025-07-14 15:08:33追加了内容

倪雨泽在2025-07-14 19:42:25追加了内容
https://www.luogu.com.cn/problem/U581702
倪雨泽在2025-07-14 22:11:27追加了内容
更新:https://www.luogu.com.cn/problem/T632707
倪雨泽在2025-07-15 17:59:52追加了内容
T632707 拼接数
题目背景
2025全国青少年信息素养大赛初中组复赛T5(回忆+解析版)
题目描述
令 ,表示a和b拼接得到的数,其中.
数学说明:
-
- 其中 计算 的位数。
- 例子:
- 若 (a=12),(b=34),则 。
问: 若,, 则范围内里有多少对满足 ?
输入格式
一行,两个整数,。
输出格式
一行,一个整数表示满足条件的数量。
输入输出样例 #1
输入 #1
54 1000
输出 #1
162
说明/提示
慎用暴力,否则“测试”时的点不过
注:到底是小于还是,本人记不清了


