QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#874255#6140. 矩阵游戏RDFZchenyy50 2ms10212kbC++172.0kb2025-01-27 21:28:572025-01-27 21:28:57

Judging History

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

  • [2025-01-27 21:28:57]
  • 评测
  • 测评结果:50
  • 用时:2ms
  • 内存:10212kb
  • [2025-01-27 21:28:57]
  • 提交

answer

#include<bits/stdc++.h>

using ll=long long;

#define MAXN 605
#define MAXM 100005

struct Edge{
    int v,nxt;
    ll w;
};

int n,m;
ll a[MAXN][MAXN];

Edge e[MAXM];
int h[MAXN],ec;
int qu[10000005],fr,bk;
int qcnt[MAXN],inq[MAXN];
ll dis[MAXN];

const ll mx=1000000;

void adde(int u,int v,ll w){
    e[ec].v=v,e[ec].w=w;
    e[ec].nxt=h[u]; h[u]=ec++;
    return;
}
void run(){
    std::cin>>n>>m;

    memset(a,0,sizeof(a));
    memset(h,-1,sizeof(h));
    memset(qcnt,0,sizeof(qcnt));
    memset(inq,0,sizeof(inq));
    memset(dis,0x3f,sizeof(dis));

    ec=0;
    for(int i=1;i<n;i++) for(int j=1;j<m;j++) std::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++){
            if(1&(i^j)){
                // +b_j-a_i
                adde(i,j+n,mx-a[i][j]);
                adde(j+n,i,a[i][j]);                
            }else{
                adde(j+n,i,mx-a[i][j]);
                adde(i,j+n,a[i][j]);
            }
        }
    }
    for(int i=1;i<=n+m;i++){
        adde(0,i,0);
    } 
    
    dis[0]=0;
    qu[fr=bk=1]=0;
    while(fr<=bk){
        int u=qu[fr++];
        inq[u]=0;
        qcnt[u]++;
        if(qcnt[u]>n+m) return (void)(std::cout<<"NO"<<'\n');
        for(int i=h[u];i+1;i=e[i].nxt){
            int v=e[i].v; ll w=e[i].w;
            if(dis[u]+w<dis[v]){
                dis[v]=dis[u]+w;
                if(!inq[v]) qu[++bk]=v,inq[v]=1;
            }
        }
    }
    std::cout<<"YES"<<'\n';
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            std::cout<<(a[i][j]+(((i^j)&1)?(-dis[i]):(dis[i]))+(((i^j)&1)?(dis[j+n]):(-dis[j+n])))<<" \n"[j==m];
        }     
    }
    return;
}

int T;
int main(){
    std::ios::sync_with_stdio(false);
    std::cin.tie(0),std::cout.tie(0);

    memset(h,-1,sizeof(h));

    std::cin>>T;
    for(int i=1;i<=T;i++) run();

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Pretests


Final Tests

Test #1:

score: 5
Accepted
time: 2ms
memory: 8288kb

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 5 0
0 4 12
18 0 0
YES
0 26 0
0 2 2
11 0 0
YES
12 0 0
0 5 5
0 0 20
YES
0 2 0
3 25 0
2 0 0
YES
0 7 0
3 12 0
13 0 0
YES
9 0 0
0 21 6
0 0 1
YES
0 4 16
0 0 5
11 0 0
YES
0 0 0
0 12 12
12 0 6
YES
0 0 0
1 4 0
22 0 4
YES
0 11 0
0 9 9
8 0 0

result:

ok you are right!!

Test #2:

score: 5
Accepted
time: 1ms
memory: 8548kb

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 0 0
0 5 13
11 0 3
YES
0 25 0
0 3 2
24 0 0
YES
20 1 0
0 9 2
0 0 0
YES
0 7 0
8 13 0
9 0 0
YES
0 22 0
0 0 5
28 0 0
YES
0 6 0
1 23 0
6 0 0
YES
0 0 0
4 13 0
5 0 0
YES
0 0 0
5 24 0
0 0 1
YES
10 10 0
1 2 0
0 0 0
YES
0 0 0
0 20 10
3 0 0

result:

ok you are right!!

Test #3:

score: 5
Accepted
time: 1ms
memory: 8928kb

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 0 0
0 17 5
0 0 5
YES
0 0 0
6 24 0
0 0 6
YES
0 1 0
0 10 5
0 0 0
YES
10 0 0
1 18 0
0 0 9
YES
0 0 0
10 2 0
13 0 24
YES
0 0 0
0 27 1
2 0 2
YES
6 0 0
0 8 3
0 0 5
YES
0 12 0
2 15 0
9 0 0
YES
0 1 8
0 0 12
25 0 0
YES
8 1 0
0 21 6
0 0 0

result:

ok you are right!!

Test #4:

score: 5
Accepted
time: 1ms
memory: 8296kb

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
15 3 0
0 11 14
0 0 0
YES
7 4 0
0 15 7
0 0 0
YES
0 23 1
0 0 6
29 0 0
YES
3 0 0
5 8 0
0 0 12
YES
0 2 0
0 24 4
5 0 0
YES
0 3 19
0 0 2
4 0 0
YES
4 1 0
0 24 5
0 0 0
YES
0 8 0
3 4 0
0 0 0
YES
5 0 0
0 25 1
0 0 4

result:

ok you are right!!

Test #5:

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

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
7048 0
2494 0
6834 0
1517 0
7845 0
1926 0
7257 0
1270 0
7370 0
0 0
NO
YES
6422 0
0 915
8098 0
0 1021
8526 0
0 0
8071 0
0 404
6278 0
0 2995
NO
YES
7096 0
2179 609
3251 0
831 609
8516 0
0 0
9454 0
0 195
8771 0
0 609
NO
YES
8958 0
0 0
8441 0
0 1184
7886 0
0 1159
6749 0
329 2352
6695 0
0 2352
NO
...

result:

ok you are right!!

Test #6:

score: 5
Accepted
time: 1ms
memory: 8544kb

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

result:

ok you are right!!

Test #7:

score: 5
Accepted
time: 2ms
memory: 9828kb

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
2492 0
0 0
6642 0
1714 294
2941 0
4736 294
2522 0
2913 294
2930 0
0 294
YES
8862 0
0 0
4232 0
0 138
9284 0
0 503
7940 0
0 1805
7425 0
0 2283
NO
YES
8907 0
0 955
8867 0
0 0
4686 0
0 4959
2300 0
373 5281
4201 0
0 5281
NO
YES
5102 0
161 2404
6828 0
0 0
8642 0
0 840
7672 0
0 694
6373 0
0 2404
NO
YES...

result:

ok you are right!!

Test #8:

score: 5
Accepted
time: 2ms
memory: 8292kb

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
YES
647283 0
0 102846
747501 0
0 134576
781948 0
12310 200103
766133 0
0 184288
659865 0
0 16206
593438 0
0 0
421730 0
64977 200103
276696 0
466236 200103
318563 0
258336 200103
196118 0
466256 200103
239005 0
157825 200103
466265 0
251053 200103
131492 0
661375 200103
137602 0
257935 200103
4620...

result:

ok you are right!!

Test #9:

score: 5
Accepted
time: 2ms
memory: 8684kb

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
YES
695456 0
0 298080
498364 0
0 500209
361888 0
0 433407
479661 0
0 497781
238111 0
184293 577595
170139 0
185227 577595
181915 0
145164 577595
184148 0
163618 577595
156111 0
262307 577595
110472 0
164547 577595
243932 0
0 498709
439158 0
0 244278
640848 0
0 234542
349106 0
72049 577595
79504 0...

result:

ok you are right!!

Test #10:

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

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
YES
997572 0
0 0
831313 0
0 140282
842484 0
0 130157
481725 0
0 160423
809914 0
0 126258
313950 0
0 227108
721150 0
0 198312
629558 0
33135 290221
319434 0
345445 290221
333253 0
0 202906
133199 0
317355 290221
229778 0
438306 290221
202508 0
166902 290221
399237 0
47579 290221
313915 0
244121 29...

result:

ok you are right!!

Test #11:

score: 0
Time Limit Exceeded

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:


result:


Test #12:

score: 0
Time Limit Exceeded

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:


result:


Test #13:

score: 0
Time Limit Exceeded

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:


result:


Test #14:

score: 0
Time Limit Exceeded

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:


result:


Test #15:

score: 0
Time Limit Exceeded

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:


result:


Test #16:

score: 0
Time Limit Exceeded

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
YES
430810989324980 2313057 430823874612559 2380541 428259779118659 53640 428272663984176 -943000 430828169780221 4182621 430841053995994 2634152 428276959073351 -440185 428289843482343 -971241 430845349803188 3463268 430858234759602 2589345 428294139277998 67474 428307023640775 -474373 430862528...

result:


Test #17:

score: 0
Time Limit Exceeded

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
YES
430810990418905 -334757 430823875120637 -1891718 428276959804230 -516525 428289844081592 -1255770 430828169897881 -742637 430841055264119 -1013015 428294139709485 -349871 428307024181499 -366747 430845349686808 -1130722 430858234453641 -1979891 428311319386460 -241605 428324204215898 -253674 ...

result:


Test #18:

score: 0
Time Limit Exceeded

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
YES
428276956872142 1787417 428289842031211 1247763 430819578260083 1109397 430832463084547 1064816 428294136848769 947137 428307022015192 2007380 430836757435473 684055 430849642444059 1702980 428311316458215 1112396 428324202081246 2612463 430853937462645 414466 430866822563187 2441271 42832849...

result:


Test #19:

score: 0
Time Limit Exceeded

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
YES
430810989445839 1993073 430823874841295 2669648 428276959200644 719873 428289844077064 2338512 430828169338984 1278383 430841054173742 2551697 428294138457668 1104559 428307023977920 2624937 430845349571463 807087 430858234230555 3364151 428311318983590 194823 428324203693064 1249232 43086252...

result:


Test #20:

score: 0
Time Limit Exceeded

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
YES
430810989216427 1065355 430823874177919 1674547 428294139162106 636071 428307023465508 1525309 430828169704784 1992686 430841054004993 1343348 428311318989287 1545423 428324203465609 1417737 430845349346920 805301 430858234539548 2075431 428328498962158 -118389 428341383933056 1768151 4308625...

result: