P10024 题解
TeachMeSegmentTree · · 题解
题目传送门
题目大意
给你一个区间
注意:短竖线包括横向的线。
题目分析
由于
先分两种情况讨论。
-
对于一个整数
x ,要是x+1 不进位,唯一一种合法情况是x 的个位是2 ,否则不满足条件。 -
对于一个整数
x ,要是x+1 进位,个位上的和不变(0 和9 使用的短竖线数量相同),则第一个非9 的位置上的值+1 也必须不变,唯一满足条件的的值只有2 ,如29 、299 ,它们+1 后使用的短竖线数量不变。
根据上面的两种情况,可以发现答案只可能是
其实可以设一个整数
我们记
AC代码
#include <bits/stdc++.h>
#define int long long
using namespace std;
int l, r;
signed main() {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> l >> r;
int cnt1 = l, cnt2 = l + 1;
for(int i = 0, mul = 10; cnt1 <= r; i++, mul *= 10) {
cnt1 = l / mul * mul + mul / 10 * 3 - 1;
cnt2 = cnt1 + mul;
if((cnt1 >= l and cnt1 < r) or (cnt2 >= l and cnt2 < r)) {
cout << 2 << endl;
return 0;
}
}
cout << 1 << endl;
return 0;
}