样例没过,玄关求调(diao,四声)
查看原帖
样例没过,玄关求调(diao,四声)
736746
bananamilktea楼主2025/8/2 14:28
#include<bits/stdc++.h>
#define int long long

using namespace std;

const int MAXN = 21;

string l, r;
int t, n, pre, f[MAXN][2][2][3], ans;

signed main() {
    cin >> t;
    while(t--) {
        ans = 0;
        cin >> l >> r;
        n = r.size();
        pre = n - l.size();
        l = string(pre, '0') + l;
        fill(f[0][0][0], f[n][2][2] + 3 + 1, 0);
        f[0][0][0][0] = 1;
        for(int i = 0; i < n; i++) {
            for(int x = 0; x <= 1; x++) {
                for(int y = 0; y <= 1; y++) {
                    for(int j = 0; j <= 3; j++) {
                        for(int k = (x ? 0 : l[i] - '0'); k <= (y ? 9 : r[i] - '0'); k++) {
                            int newx = x || k > (l[i] - '0'), newy = y || k < (r[i] - '0'); 
                            if(j + (k != 0) <= 3) {
                                f[i + 1][newx][newy][j + (k != 0)] += f[i][x][y][j];
                            }
                        }
                    }
                }
            }
        }
        for(int i = 0; i <= 3; i++) {
            ans += f[n][0][0][i] + f[n][0][1][i] + f[n][1][0][i] + f[n][1][1][i];
        }
        cout << ans << "\n";
    }
    return 0;
}
2025/8/2 14:28
加载中...