QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#721852#6140. 矩阵游戏propane60 811ms6556kbC++202.5kb2024-11-07 17:00:422024-11-07 17:00:46

Judging History

你现在查看的是最新测评结果

  • [2024-11-07 17:00:46]
  • 评测
  • 测评结果:60
  • 用时:811ms
  • 内存:6556kb
  • [2024-11-07 17:00:42]
  • 提交

answer

#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
using LL = long long;
LL a[305][305];
vector<pair<int, int> > g[605];
LL d[605];

int main(){

#ifdef LOCAL
    freopen("data.in", "r", stdin);
    freopen("data.out", "w", stdout);
#endif

    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(0);

    int T;
    cin >> T;
    while(T--){
        int n, m;
        cin >> n >> m;
        for(int i = 1; i <= n - 1; i++){
            for(int j = 1; j <= m - 1; j++){
                cin >> a[i][j];
            }
        }
        for(int i = n - 1; i >= 1; i--){
            for(int j = m - 1; j >= 1; j--){
                a[i][j] -= a[i + 1][j] + a[i][j + 1] + a[i + 1][j + 1];
            }
        }
        // for(int i = 1; i <= n; i++){
        //     for(int j = 1; j <= m; j++){
        //         cout << a[i][j] << " \n"[j == m];
        //     }
        // }
        for(int i = 1; i <= n + m; i++) g[i].clear();
        for(int i = 1; i <= n; i++){
            for(int j = 1; j <= m; j++){
                // 0 <= row(i) - col(j) + a[i][j] <= 1000'000
                if ((i + j) % 2 == 0){
                    g[j + n].push_back({i, 1000'00 - a[i][j]});
                    g[i].push_back({j + n, a[i][j]});
                }
                // 0 <= col(j) - row(i) + a[i][j] <= 1000'000
                else{
                    g[i].push_back({j + n, 1000'00 - a[i][j]});
                    g[j + n].push_back({i, a[i][j]});
                }
            }
        }
        memset(d, 0x3f, sizeof d);
        d[1] = 0;
        for(int _ = 0; _ < n + m - 1; _++){
            for(int i = 1; i <= n + m; i++){
                for(auto [j, w] : g[i]){
                    d[j] = min(d[j], d[i] + w);
                }
            }
        }
        bool ok = true;
        for(int i = 1; i <= n; i++){
            for(int j = 1; j <= m; j++){
                if ((i + j) % 2 == 0) a[i][j] += d[i];
                else a[i][j] -= d[i];
                if ((i + j) % 2 == 0) a[i][j] -= d[j + n];
                else a[i][j] += d[j + n];
                ok &= (a[i][j] >= 0) and (a[i][j] <= 1000'000);
            }
        }
        if (ok){
            cout << "YES" << '\n';
            for(int i = 1; i <= n; i++){
                for(int j = 1; j <= m; j++){
                    cout << a[i][j] << " \n"[j == m];
                }
            }
        }
        else{
            cout << "NO" << '\n';
        }
    }

}

Details

Tip: Click on the bar to expand more detailed information

Pretests


Final Tests

Test #1:

score: 5
Accepted
time: 0ms
memory: 3580kb

input:

10
3 3
9 21
22 16
3 3
28 30
13 4
3 3
17 10
5 30
3 3
30 27
30 25
3 3
22 19
28 12
3 3
30 27
21 28
3 3
4 25
11 5
3 3
12 24
24 30
3 3
5 4
27 8
3 3
20 29
17 18

output:

YES
0 9 0
0 0 12
22 0 4
YES
0 28 0
0 0 2
13 0 2
YES
2 10 0
5 0 0
0 0 30
YES
0 27 0
3 0 0
27 0 25
YES
0 19 0
3 0 0
25 0 12
YES
0 27 0
3 0 0
18 0 28
YES
0 4 16
0 0 5
11 0 0
YES
0 12 0
0 0 12
24 0 18
YES
0 4 0
1 0 0
26 0 8
YES
0 20 0
0 0 9
17 0 9

result:

ok you are right!!

Test #2:

score: 5
Accepted
time: 0ms
memory: 3648kb

input:

10
3 3
5 18
16 21
3 3
28 30
27 5
3 3
30 12
9 11
3 3
28 20
30 13
3 3
22 27
28 5
3 3
30 29
30 23
3 3
17 13
22 13
3 3
29 24
29 25
3 3
23 12
3 2
3 3
20 30
23 30

output:

YES
0 5 0
0 0 13
16 0 8
YES
0 28 0
0 0 2
27 0 3
YES
9 12 0
9 0 0
0 0 11
YES
0 20 0
8 0 0
22 0 13
YES
0 22 0
0 0 5
28 0 0
YES
0 29 0
1 0 0
29 0 23
YES
0 13 0
4 0 0
18 0 13
YES
0 24 0
5 0 0
24 0 25
YES
8 12 0
3 0 0
0 0 2
YES
0 20 0
0 0 10
23 0 20

result:

ok you are right!!

Test #3:

score: 5
Accepted
time: 0ms
memory: 3596kb

input:

10
3 3
17 22
17 27
3 3
30 24
30 30
3 3
11 16
10 15
3 3
29 18
19 27
3 3
12 2
25 26
3 3
27 28
29 30
3 3
14 11
8 16
3 3
29 27
26 15
3 3
1 21
25 12
3 3
30 28
21 27

output:

YES
0 17 0
0 0 5
17 0 22
YES
0 24 0
6 0 0
24 0 30
YES
0 11 0
0 0 5
10 0 10
YES
0 18 0
11 0 0
8 0 27
YES
0 2 0
10 0 0
15 0 26
YES
0 27 0
0 0 1
29 0 29
YES
0 11 0
3 0 0
5 0 16
YES
0 27 0
2 0 0
24 0 15
YES
0 1 8
0 0 12
25 0 0
YES
0 28 0
2 0 0
19 0 27

result:

ok you are right!!

Test #4:

score: 5
Accepted
time: 0ms
memory: 3664kb

input:

10
3 3
6 30
30 11
3 3
29 28
11 25
3 3
26 26
15 22
3 3
23 30
29 6
3 3
16 8
13 20
3 3
26 30
29 28
3 3
3 24
4 2
3 3
29 30
24 29
3 3
15 12
7 4
3 3
30 26
25 30

output:

YES
0 6 13
0 0 11
30 0 0
YES
0 28 0
1 0 0
10 0 25
YES
0 26 0
0 0 0
15 0 22
YES
0 23 1
0 0 6
29 0 0
YES
0 8 0
8 0 0
5 0 20
YES
0 26 0
0 0 4
29 0 24
YES
0 3 19
0 0 2
4 0 0
YES
0 29 0
0 0 1
24 0 28
YES
0 12 0
3 0 0
4 0 4
YES
0 26 0
4 0 0
21 0 30

result:

ok you are right!!

Test #5:

score: 5
Accepted
time: 0ms
memory: 3568kb

input:

10
10 2
240
8788
3257
6676
9748
4941
1268
2569
7827
10 2
9542
9328
8351
9362
9771
9183
8527
8640
7370
10 2
3144
7704
2054
9901
3567
120
2273
2407
4202
10 2
7337
9013
9119
9547
8526
8071
8475
6682
9273
10 2
746
9791
1891
3204
8908
1495
1353
9406
1176
10 2
9884
6039
4691
9956
8516
9454
9649
8966
9380
...

output:

NO
YES
0 7048
0 2494
6834 0
0 1517
7845 0
0 1926
7257 0
0 1270
7370 0
0 0
NO
YES
0 6422
0 915
8098 0
0 1021
8526 0
0 0
8071 0
0 404
6278 0
0 2995
NO
YES
0 7096
0 2788
3251 0
0 1440
8516 0
0 0
9454 0
0 195
8771 0
0 609
NO
YES
0 8958
0 0
8441 0
0 1184
7886 0
0 1159
6749 0
0 2681
6695 0
0 2352
NO
YES
0...

result:

ok you are right!!

Test #6:

score: 5
Accepted
time: 0ms
memory: 3604kb

input:

10
10 2
7221
6762
7271
4154
1804
3226
6434
8357
2359
10 2
8581
5933
9174
9731
9716
9180
8744
9947
6264
10 2
282
9689
7228
960
2522
6806
7516
7002
9829
10 2
9202
8816
8250
9267
8287
8105
9707
8985
9226
10 2
2004
254
7197
7613
9790
5556
3064
6363
6489
10 2
7863
9827
9600
9998
7626
6038
9530
8772
8501
...

output:

NO
YES
0 7688
0 893
5040 0
0 4134
5597 0
0 4119
5061 0
0 3683
6264 0
0 0
NO
YES
0 7656
0 1546
7270 0
0 980
8287 0
0 0
8105 0
0 1602
7383 0
0 1843
NO
YES
0 5264
0 2599
7228 0
0 2372
7626 0
0 0
6038 0
0 3492
5280 0
0 3221
NO
YES
0 6291
0 1856
7172 0
0 0
9481 0
0 283
9133 0
0 711
4441 0
0 3348
YES
0 25...

result:

ok you are right!!

Test #7:

score: 5
Accepted
time: 0ms
memory: 3652kb

input:

10
10 2
2492
6642
8650
4949
7971
7552
5729
6137
3224
10 2
8862
4232
4370
9422
9787
8443
9745
9230
9708
10 2
1073
3311
5736
6108
1985
2880
2596
1260
4678
10 2
9862
9822
8867
4686
9645
7259
7954
9855
9482
10 2
6532
3248
1799
3767
7693
4389
5786
1124
9586
10 2
7667
9393
6828
8642
9482
8512
8366
7067
87...

output:

YES
0 2492
0 0
6642 0
0 2008
2941 0
0 5030
2522 0
0 3207
2930 0
0 294
YES
0 8862
0 0
4232 0
0 138
9284 0
0 503
7940 0
0 1805
7425 0
0 2283
NO
YES
0 8907
0 955
8867 0
0 0
4686 0
0 4959
2300 0
0 5654
4201 0
0 5281
NO
YES
0 5102
0 2565
6828 0
0 0
8642 0
0 840
7672 0
0 694
6373 0
0 2404
NO
YES
0 5629
0 ...

result:

ok you are right!!

Test #8:

score: 0
Wrong Answer
time: 1ms
memory: 3836kb

input:

10
100 2
407406
741582
966880
693984
175204
991130
183615
326373
131306
366816
697972
180227
398068
835836
746523
999640
178807
545159
437329
536071
721606
306737
181599
455551
733444
231865
77996
588988
897019
804401
528918
524503
349494
623245
534144
344637
25518
791164
100668
547254
630911
346372...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO

result:

wrong answer expected: YES, found: NO

Test #9:

score: 0
Wrong Answer
time: 1ms
memory: 3960kb

input:

10
100 2
514849
121431
445450
996530
912655
547635
39581
89505
975458
843069
273144
700881
59053
289340
848708
32178
700710
194859
273472
213196
384827
341987
482545
308239
413944
599935
848280
843825
979288
195213
209986
440149
934390
768000
882462
200861
119570
174661
871708
511415
426500
576587
5...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO

result:

wrong answer expected: YES, found: NO

Test #10:

score: 0
Wrong Answer
time: 1ms
memory: 3908kb

input:

10
100 2
650385
567657
465159
181316
696069
211308
655715
128129
988551
838473
44280
61031
528962
277047
286263
142130
248066
307713
578918
695526
89569
48119
569157
673222
295474
923221
90394
912892
523136
369133
635906
272262
887296
438346
625250
217263
729637
256075
898161
999382
845113
626531
74...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO

result:

wrong answer expected: YES, found: NO

Test #11:

score: 5
Accepted
time: 811ms
memory: 6528kb

input:

10
300 298
0 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0...

output:

NO
YES
1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0...

result:

ok you are right!!

Test #12:

score: 5
Accepted
time: 784ms
memory: 6492kb

input:

10
297 296
0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0...

output:

NO
YES
1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0...

result:

ok you are right!!

Test #13:

score: 5
Accepted
time: 800ms
memory: 6476kb

input:

10
297 299
1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1...

output:

NO
YES
0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0...

result:

ok you are right!!

Test #14:

score: 5
Accepted
time: 807ms
memory: 6556kb

input:

10
298 299
0 1 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0...

output:

NO
YES
0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0...

result:

ok you are right!!

Test #15:

score: 5
Accepted
time: 798ms
memory: 6516kb

input:

10
298 296
0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1...

output:

NO
YES
1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0...

result:

ok you are right!!

Test #16:

score: 0
Wrong Answer
time: 796ms
memory: 6496kb

input:

10
295 299
3600561 469227 1519243 508870 2714139 2548515 3416122 1633507 1829918 1551817 3098121 1670950 2106466 1946727 1581396 3426393 1988045 2888135 2146489 1534631 2721599 3729764 456043 293501 882439 3099151 2941143 3610816 549774 1066237 3189705 2413286 2316602 3976215 3845403 862960 241887 2...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO

result:

wrong answer expected: YES, found: NO

Test #17:

score: 0
Wrong Answer
time: 795ms
memory: 6492kb

input:

10
298 297
1203979 2459461 1123626 2165742 593951 2361185 60882 1597698 966249 1407808 2665213 1585110 1730464 732707 2642476 54357 96750 3459440 500455 1509802 2084769 1885656 824649 1394960 3065480 1964072 626742 582644 617926 652074 1646286 250370 1154127 1955950 327344 753408 2005921 2832519 933...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO

result:

wrong answer expected: YES, found: NO

Test #18:

score: 0
Wrong Answer
time: 790ms
memory: 6488kb

input:

10
296 296
2917992 3146628 3606537 755096 2325656 3902232 2435726 2851482 3134088 1183312 3680091 2970485 3974463 2456731 3306154 400789 1137399 1266637 1849976 2126197 1039996 2867787 711979 2828033 1651264 3781772 1152035 2861694 2479767 1853717 886722 2972156 4583 903432 3364054 3947134 3871761 3...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO

result:

wrong answer expected: YES, found: NO

Test #19:

score: 0
Wrong Answer
time: 807ms
memory: 6500kb

input:

10
297 297
13391 712464 2974864 1439202 1447544 1413180 800048 597109 3349875 2034207 1467293 796338 2354278 171222 1066675 2532591 208592 123178 2912280 3309432 3409173 1029236 2315777 2135394 3355241 69077 3113692 2937527 2948148 1151724 1640840 870814 42569 2304251 726055 3017332 2049772 2646010 ...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO

result:

wrong answer expected: YES, found: NO

Test #20:

score: 0
Wrong Answer
time: 785ms
memory: 6548kb

input:

10
297 295
2251173 2102586 854138 210476 3746962 1050335 357886 1246625 2048656 3914401 2622120 2500826 3210040 3638713 646704 3538951 2675262 2202513 1600647 2451535 120429 782584 3574033 3344068 580591 2179489 3256587 684504 1805546 599720 3155847 2286982 2960267 502472 3365334 1420188 2393737 228...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO

result:

wrong answer expected: YES, found: NO