QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#925877#9667. L-Covering Checkerwpoem#AC ✓8ms3968kbC++232.0kb2025-03-05 09:45:132025-03-05 09:45:13

Judging History

This is the latest submission verdict.

  • [2025-03-05 09:45:13]
  • Judged
  • Verdict: AC
  • Time: 8ms
  • Memory: 3968kb
  • [2025-03-05 09:45:13]
  • Submitted

answer

#include "bits/stdc++.h"
using namespace std;
#ifdef LOCAL
#include "bits/debug.h"
#else
#define debug(...) (void)0
#endif
using i64 = int64_t;
using u64 = uint64_t;

auto solve()
{
#define tests
    int n, m; cin >> n >> m;
    vector<string> a(n); for (auto& ai : a) {cin >> ai;}
    int cnt{}; {
        for (auto& ai : a) {cnt += ranges::count(ai, '.');}
    }
    if (cnt != 1) {println("No"); return ;}
    
    for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) if (a[i][j] == '.' and make_pair(i, j) != make_pair(0, m - 1)) {
        println("No"); return ;
    }

    auto getCenter = [&](auto& i, auto& j) -> pair<int, int> {
        const auto& ch = a[i][j];
        if (ch == 'L') {return {i, j - 1};}
        else if (ch == 'R') {return {i, j + 1};}
        else if (ch == 'U') {return {i - 1, j};}
        else {return {i + 1, j};}
    };

    auto valid = [&](auto& i, auto& j) -> bool {
        return i >= 0 and i < n and j >= 0 and j < m;
    };

    debug(n, m);

    for (int i = 0; i < n; i++) {//检查边缘是否配对中心
        for (int j = 0; j < m; j++) if (a[i][j] != 'C' and a[i][j] != '.') {
            const auto&[ci, cj] = getCenter(i, j);
            if (not valid(ci, cj) or a[ci][cj] != 'C') {debug(i, j, ci, cj); println("No"); return ;}
        }
    }

    debug(n, m);

    for (int i = 0; i < n; i++) {//检查中心是否唯二配对两个边缘
        for (int j = 0; j < m; j++) if (a[i][j] == 'C') {
            auto cnt = 0;
            for (const auto&[dx, dy] : {make_pair(0, 1), {0, -1}, {1, 0}, {-1, 0}}) {
                auto tx = i + dx, ty = j + dy; if (valid(tx, ty) and a[tx][ty] != 'C') {
                    cnt += bool(getCenter(tx, ty) == make_pair(i, j));
                }
            }
            if (cnt != 2) {println("No"); return ;}
        }
    }
    println("Yes"); return ;
}

signed main()
{
    cin.tie(nullptr)->sync_with_stdio(false);
    int _ { 1 };
#ifdef tests
    cin >> _;
#endif
    while (_--) {solve();}
    return 0;
}

这程序好像有点Bug,我给组数据试试?

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3840kb

input:

2
4 4
CLD.
UDCL
DCLD
CLRC
2 3
DRC
CLU

output:

Yes
No

result:

ok 2 lines

Test #2:

score: 0
Accepted
time: 1ms
memory: 3840kb

input:

100
47 81
UCRRRCR.CLURRCU.LLURDDRUDCC.DCUD.R.CURL.RURLC.LULLRDCDDDCC.CCUCLRLDLULULLUD.RL.R.
LC.UDUDCL.RRCLRRURDRDL.CRD.LDURRCRU.D..LCUD.UDRCCURDLDCD.DDUC..ULLLDDCLDCL..C.R.C
LLLLLULD.RLU.L.RURDLRCULCD.RCC..URD.LD.UCURDR.DUULUUD..LULR.RDURDDLRRRD.LCLLCD.D.
LUCR.RCR.RRCL..DRURU.CLLDRCUULULRULCU.RD.UDR...

output:

No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No

result:

ok 100 lines

Test #3:

score: 0
Accepted
time: 1ms
memory: 3840kb

input:

100
10 10
D.D....D..
CLCLCLRCRC
CL..U.CL.U
UCL.RCU.D.
.UDRCUCLCL
..CLU.U.RC
.CL.CL.DDU
.UCLUDRCCL
D.U.RCDCLD
CL...RCURC
11 5
.CLCL
.U.U.
..RC.
DRCU.
CLU.D
.CLRC
DUDRC
CLCLU
D....
CLD.D
.RCRC
2 8
D.RCCLD.
CL.UURC.
7 10
.CL...CLCL
.U.D.DU.U.
.RCCLCL.RC
..UD.RCRCU
D.RCD.U.U.
CL.RCD.RC.
.....CL.U.
7 10
...

output:

No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No

result:

ok 100 lines

Test #4:

score: 0
Accepted
time: 0ms
memory: 3712kb

input:

100
5 32
.DCL.DCLRC.RCDRC...CLD.CLCL.....
RCUDRCUCLU..UCLU.RCURC.U.UCL..CL
CL.CL..U.RC...D.RCU.D.D...U.CLU.
U.D.D.CL.DUD.RCCLUDRCDCL.DD.UD.D
.RC.CLU..CLCL..U..CL.CL.RCCLRCRC
8 41
.RCDRCRCRCD..CL.RCD.CL..CLCL.RCRC.RCCL.RC
RCUCLUDUDUCL.URC.UCLUDRCU.U...UDUD.UUCL.U
DUCL..CLCLD...DUCL..RC.UCL.RCD.CLCLD....

output:

No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No

result:

ok 100 lines

Test #5:

score: 0
Accepted
time: 1ms
memory: 3968kb

input:

100
92 77
.RC.RCCL.D.CLCLD......D.RC.RCRCCLD.CL.RCCLCL..D.D.RCCL.DCL.D.CLRCD.D.D.CLRCD.
..U..UUCLCLU.UDCL.CL.RCRCUD.U.UU.CLU.RCUUDURCRC.CLDUUDRCU..CLUCLUCLCLCLURCUCL
D.D.D.DUCLCL..CLD.U.CLCLURCCLD....CLCLU.DCL.UCL.DRCDRCDRC..CLDUCL.D..CL.DUD..
CLCLCLCLUDUDRC..CLCLU.U.D..URCCLDDU.U..RC.RC.U.RCRCCLRCD...

output:

No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No

result:

ok 100 lines

Test #6:

score: 0
Accepted
time: 8ms
memory: 3968kb

input:

1059
2 2
RC
.U
5 2
D.
CL
CL
UD
RC
2 8
DRCDRCD.
CLUCLUCL
4 4
CLRC
URCU
RCUD
.URC
11 2
D.
CL
RC
DU
CL
RC
DU
CL
RC
DU
CL
5 5
CLRC.
URCUD
CLURC
UDDRC
RCCLU
14 2
RC
DU
CL
RC
DU
CL
RC
DU
CL
RC
DU
CL
RC
.U
4 7
CLDCLD.
URCUDCL
DRCDCLD
CLUCLRC
17 2
D.
CL
RC
DU
CL
RC
DU
CL
RC
DU
CL
RC
DU
CL
RC
DU
CL
20 2
D.
C...

output:

No
Yes
Yes
No
Yes
Yes
No
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
Yes
Yes
Yes
Yes
Yes
No
No
No
No
Yes
No
No
No
Yes
Yes
Yes
Yes
Yes
Yes
No
Yes
No
Yes
No
No
Yes
No
No
Yes
Yes
Yes
Yes
No
Yes
No
Yes
Yes
Yes
No
No
Yes
No
No
No
Yes
No
No
Yes
Yes
Yes
No
Yes
Yes
Yes
Yes
Yes
No
No
No
No
Yes
Yes
No
No
No
Yes
Yes
...

result:

ok 1059 lines

Test #7:

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

input:

81
100 100
CLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLD.
URCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCUDCL
CLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLD...

output:

Yes
Yes
Yes
Yes
Yes
No
Yes
No
Yes
Yes
Yes
No
Yes
Yes
No
Yes
No
No
No
No
Yes
No
No
Yes
No
Yes
Yes
No
No
Yes
No
No
Yes
No
Yes
Yes
Yes
Yes
No
No
Yes
No
Yes
Yes
No
No
No
Yes
No
No
No
Yes
No
No
Yes
Yes
Yes
Yes
Yes
No
Yes
Yes
Yes
No
No
Yes
No
Yes
No
No
No
No
No
Yes
Yes
Yes
No
No
No
Yes
Yes

result:

ok 81 lines

Test #8:

score: 0
Accepted
time: 6ms
memory: 3968kb

input:

15
250 250
CLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLD.
URCURCURCURCURCURCURCURCURCURCURCURCUR...

output:

Yes
No
Yes
Yes
Yes
Yes
Yes
No
Yes
Yes
No
No
Yes
Yes
Yes

result:

ok 15 lines

Test #9:

score: 0
Accepted
time: 4ms
memory: 3968kb

input:

10
301 301
CLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCC...

output:

No
Yes
Yes
No
No
Yes
No
No
Yes
Yes

result:

ok 10 lines

Test #10:

score: 0
Accepted
time: 6ms
memory: 3968kb

input:

4
497 497
CLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCL...

output:

No
Yes
No
Yes

result:

ok 4 lines

Extra Test:

score: 0
Extra Test Passed