编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#80653 #1032. 1-03G. JM的毒瘤题 Accepted 100 146 ms 960 K C++ 11 / 1.1 K K-ON 2022-07-24 19:49:20
显示原始代码
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
vector<int> a;
int main() {
    int q, k, res;
    ll l1, r1, l2, r2;
    int f(int k, ll l1, ll r1, ll l2, ll r2);
    scanf("%d", &q);
    for (int i = 0; i < q; i++) {
        scanf("%d%lld%lld%lld%lld", &k, &l1, &r1, &l2, &r2);
        res = f(k, l1, r1, l2, r2);
        a.push_back(res);
    }
    for (int i = 0; i < q; i++) {
        printf("%d\n", a[i]);
    }
    return 0;
}

int f(int k, ll l1, ll r1, ll l2, ll r2) {
    if (l1 > l2 || (l1 == l2 && r1 < r2)) {
        return f(k, l2, r2, l1, r1);
    }
    if (l1 > r1 || l2 > r2 || k == 0) {
        return 0;
    }
    ll mid = (1 << (k - 1));
    if (l1 > mid) {
        return f(k, l1 - mid, r1 - mid, l2, r2);
    }
    if (l2 > mid) {
        return f(k, l1, r1, l2 - mid, r2 - mid);
    }
    if (r1 >= r2) {
        return r2 - l2 + 1;
    }
    if (r2 < mid) {
        return f(k - 1, l1, r1, l2, r2);
    }
    // solve the problem
    int maxi = r1 - l2 + 1;
    if (r1 < mid) {
        maxi = max(maxi, f(k, l1, r1, l2, mid - 1));  //���ηֱ�Ա�
        maxi = max(maxi, f(k, l1, r1, mid + 1, r2));
        return maxi;
    }
    maxi = max(maxi, f(k, l1, mid - 1, l2, mid - 1));  //�Ķ�
    maxi = max(maxi, f(k, l1, mid - 1, 1, r2 - mid));
    maxi = max(maxi, f(k, 1 + mid, r1, l2, mid + 1));
    maxi = max(maxi, f(k, 1 + mid, r1, 1 + mid, r2));
    return maxi;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:4 ms
内存:232 KiB

输入文件(1.in

3
3 1 2 4 5
3 1 4 3 6
3 1 1 2 2

答案文件(1.out

1
2
0

用户输出

1
2
0

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:6 ms
内存:384 KiB

输入文件(2.in

18
30 3 6 1 4
30 1 1 4 4
30 2 2 6 6
30 1 1 1 1
30 1 1 2 3
30 2 3 1 1
30 4 5 6 7
30 5 6 5 10
<126 bytes omitted>

答案文件(2.out

2
0
1
1
1
1
1
2
2
3
3
3
3
4
4
1
1
8

用户输出

2
0
1
1
1
1
1
2
2
3
3
3
3
4
4
1
1
8

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:6 ms
内存:500 KiB

输入文件(3.in

45
30 73426655 594361930 343984155 989446962
30 169720415 312105195 670978284 671296539
30 20 59 
<1585 bytes omitted>

答案文件(3.out

379149396
207899
5
103
2901
19516
112739
4151539
7731787
530010446
1000000000
71194568
8
<301 bytes omitted>

用户输出

379149396
207899
5
103
2901
19516
112739
4151539
7731787
530010446
1000000000
71194568
8140525
28429169
268435455
463129088
4631
<228 bytes omitted>

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:63 ms
内存:960 KiB

输入文件(4.in

100000
11 103 1997 1063 1222
26 24644974 48409450 51667909 57999424
2 3 3 3 3
26 3660266 5056371
<2667925 bytes omitted>

答案文件(4.out

160
6331516
1
669897
1502512
8644289
1107
154443
2295
1
30891
15
7171342
11
2819
1215
<609656 bytes omitted>

用户输出

160
6331516
1
669897
1502512
8644289
1107
154443
2295
1
30891
15
7171342
11
2819
12156
733
194
29096358
151
5916
1
92366
174
321
<509628 bytes omitted>

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:67 ms
内存:908 KiB

输入文件(5.in

100000
30 642049148 976948557 570976641 972271279
30 562317312 772318035 72539938 682025304
30 30
<4380333 bytes omitted>

答案文件(5.out

330222132
210000724
120072017
43243530
87344032
51372755
134353734
306730318
235458160
6499
<1031634 bytes omitted>

用户输出

330222132
210000724
120072017
43243530
87344032
51372755
134353734
306730318
235458160
6499998
134574977
4027250
218285468
83887
<931606 bytes omitted>

系统信息

Exited with return code 0