AM学军OJ

T1 暴力

 1 #include<bits/stdc++.h>
 2  
 3 using namespace std;
 4  
 5 typedef long long LL;
 6 const int N = 2000000 + 10;
 7  
 8 int len, power;
 9  
10 int get_next(int x) {
11     return x / 10 + x % 10 * power;
12 }
13  
14 int vis[N], clk;
15  
16 LL calc(int l, int r) {
17     LL ans = 0;
18     for(int i = l; i <= r; i++) if(vis[i] != clk) {
19         int c = 0, x = i;
20         for(int j = 0; j < len; j++) {
21             if(l <= x && x <= r && vis[x] != clk) {
22                 vis[x] = clk, c++;
23             }
24             //cout << x << endl;
25             x = get_next(x);
26         }
27         //cout << "--" << ans << endl;
28         ans += c * (c - 1) / 2;
29     }
30     return ans;
31 }
32  
33 int main() {
34  
35     int T;
36     scanf("%d", &T);
37     while(T--) {
38         //memset(vis, 0, sizeof vis);
39         clk++;
40         int l, r, x;
41         scanf("%d%d", &l, &r); x = l;
42         for(len = 0, power = 1; x; x /= 10) len++, power *= 10;
43         power /= 10;
44         //cerr << "!" << endl;
45         //printf("%d\n", calc(l, r));
46         cout << calc(l, r) << endl;
47     }
48  
49  
50     return 0;
51 }
View Code

相关文章: