QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#741871 | #9714. A Colorful Grid | ucup-team004 | AC ✓ | 379ms | 6408kb | C++23 | 5.3kb | 2024-11-13 15:23:49 | 2024-11-13 15:23:53 |
Judging History
answer
#include <bits/stdc++.h>
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int t;
std::cin >> t;
for (int nCase = 1; nCase <= t; ++nCase) {
int n, m, k;
std::cin >> n >> m >> k;
std::vector<int> x1(k), y1(k), x2(k), y2(k), c(k);
for (int i = 0; i < k; ++i) {
std::cin >> x1[i] >> y1[i] >> x2[i] >> y2[i] >> c[i];
--x1[i], --x2[i], --y1[i], --y2[i];
}
std::vector<std::string> grid;
auto tryConstruct = [&]() {
std::vector<int> noCut(n + 1), nxt(n, n);
for (int i = 0; i < k; ++i) {
int l = x1[i], r = x2[i];
if (l > r) std::swap(l, r);
if (c[i] == 1) {
++noCut[l + 1];
--noCut[r + 1];
} else nxt[l] = std::min(nxt[l], r);
}
for (int i = 1; i <= n; ++i) noCut[i] += noCut[i - 1];
for (int i = n - 2; i >= 0; --i) nxt[i] = std::min(nxt[i], nxt[i + 1]);
std::vector<int> cand;
for (int i = 0; i <= n; ++i)
if (!noCut[i]) cand.push_back(i);
std::vector<int> cuts;
if (m % 2 == 1) {
int lst = 0;
for (auto r : cand) {
if (r % 2 == 1) {
if (r > nxt[lst]) return false;
cuts.push_back(r);
lst = r;
}
}
if (n > nxt[lst]) return false;
if (m == 1 && int(cuts.size()) < n / 2) return false;
if (cuts.empty()) return false;
} else {
int cnt = cand.size();
std::vector<int> dp(cnt, -1);
dp[0] = 0;
for (int i = 0; i < cnt - 1; ++i) {
if (dp[i] == -1) continue;
for (int j = 0; j <= i + 3 && j < cnt; ++j) {
if (cand[j] > nxt[cand[i]]) continue;
if (cand[i] == 0 && cand[j] == n) {
if (n < 3 || m < 4) continue;
} else if (cand[i] != 0 && cand[j] != n && cand[j] - cand[i] < 2) continue;
dp[j] = i;
}
}
if (dp[cnt - 1] == -1) return false;
for (int i = dp[cnt - 1]; i != 0; i = dp[i]) cuts.push_back(cand[i]);
std::reverse(cuts.begin(), cuts.end());
}
grid.assign(n, std::string(m, '?'));
if (cuts.empty()) {
assert(n >= 3 && m >= 4 && m % 2 == 0);
grid[0][0] = grid[2][2] = 'R';
grid[0][1] = grid[2][3] = 'L';
grid[0][2] = grid[0][3] = grid[1][0] = grid[1][1] = 'D';
grid[1][2] = grid[1][3] = grid[2][0] = grid[2][1] = 'U';
for (int i = 4; i < m; ++i) {
grid[0][i] = 'D';
grid[1][i] = 'U';
grid[2][i] = "RL"[i % 2];
}
for (int i = 3; i < n; ++i)
for (int j = 0; j < m; ++j) grid[i][j] = "RL"[j % 2];
} else {
auto fill = [&](int l, int r) {
for (int i = l; i < r; ++i) {
for (int j = 0; j + 1 < m; j += 2) {
grid[i][j] = 'R';
grid[i][j + 1] = 'L';
}
}
if (m % 2 == 1) {
for (int i = l; i < r; i += 2) {
grid[i][m - 1] = 'D';
grid[i + 1][m - 1] = 'U';
}
}
};
fill(0, cuts[0] - 1);
fill(cuts.back() + 1, n);
for (int i = 0; i + 1 < int(cuts.size()); ++i) fill(cuts[i] + 1, cuts[i + 1] - 1);
for (auto r : cuts) {
grid[r - 1] = std::string(m, 'D');
grid[r] = std::string(m, 'U');
}
}
return true;
};
std::cout << "Case #" << nCase << ": ";
if (tryConstruct()) {
std::cout << "Yes\n";
for (int i = 0; i < n; ++i) std::cout << grid[i] << "\n";
continue;
}
std::swap(n, m);
for (int i = 0; i < k; ++i) {
std::swap(x1[i], y1[i]);
std::swap(x2[i], y2[i]);
}
if (tryConstruct()) {
std::cout << "Yes\n";
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
char ch = grid[j][i];
if (ch == 'R') ch = 'D';
else if (ch == 'D') ch = 'R';
else if (ch == 'L') ch = 'U';
else ch = 'L';
std::cout << ch;
}
std::cout << "\n";
}
} else std::cout << "No\n";
}
return 0;
}
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3616kb
input:
4 2 2 1 1 1 1 2 1 2 2 1 1 1 2 1 1 2 2 1 1 1 2 2 1 2 2 2 1 1 1 2 0 1 1 2 1 0
output:
Case #1: Yes DD UU Case #2: Yes RL RL Case #3: No Case #4: No
result:
ok all accept
Test #2:
score: 0
Accepted
time: 0ms
memory: 3604kb
input:
4 2 10 7 1 1 2 1 1 1 9 1 10 1 1 2 2 4 0 1 3 2 5 0 1 4 2 6 0 1 5 2 7 0 1 6 2 8 0 2 10 6 1 1 2 1 1 1 8 1 10 1 1 2 2 4 0 1 3 2 5 0 1 4 2 6 0 1 5 2 7 0 2 10 6 1 1 2 2 0 1 8 2 10 1 1 2 2 4 0 1 3 2 5 0 1 4 2 6 0 1 5 2 7 0 2 10 7 1 1 2 2 0 1 9 2 10 1 1 2 2 4 0 1 3 2 5 0 1 4 2 6 0 1 5 2 7 0 1 6 2 8 0
output:
Case #1: Yes DRLRLRLRLD URLRLRLRLU Case #2: Yes RLRLRLRLDD RLRLRLRLUU Case #3: Yes RLRLRLRLDD RLRLRLRLUU Case #4: Yes RLRLRLRLDD RLRLRLRLUU
result:
ok all accept
Test #3:
score: 0
Accepted
time: 0ms
memory: 3604kb
input:
3 2 9 7 1 1 2 2 0 1 7 2 9 1 1 2 2 4 0 1 3 2 5 0 1 4 2 6 0 1 5 2 7 0 1 6 2 8 0 2 9 7 1 1 2 2 0 1 8 2 9 1 1 2 2 4 0 1 3 2 5 0 1 4 2 6 0 1 5 2 7 0 1 6 2 8 0 2 9 7 1 1 2 3 0 1 7 2 9 1 1 2 2 4 0 1 3 2 5 0 1 4 2 6 0 1 5 2 7 0 1 6 2 8 0
output:
Case #1: No Case #2: Yes RLRLRLRLD RLRLRLRLU Case #3: Yes DRLRLRLDD URLRLRLUU
result:
ok all accept
Test #4:
score: 0
Accepted
time: 0ms
memory: 3824kb
input:
4 2 9 1 1 1 2 9 1 2 10 1 1 1 2 10 1 3 4 1 1 1 3 4 1 4 4 1 1 1 4 4 1
output:
Case #1: No Case #2: No Case #3: Yes RLDD DDUU UURL Case #4: Yes RLDD DDUU UURL RLRL
result:
ok all accept
Test #5:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
4 2 10 5 1 1 2 3 1 1 7 2 10 1 1 3 2 5 0 1 4 2 6 0 1 5 2 7 0 2 10 6 1 1 2 3 1 1 7 2 10 1 1 2 2 4 0 1 3 2 5 0 1 4 2 6 0 1 5 2 7 0 2 10 7 1 1 2 3 1 1 7 2 10 1 1 2 2 4 0 1 3 2 5 0 1 4 2 6 0 1 5 2 7 0 1 6 2 8 0 2 10 7 1 1 2 2 1 1 7 2 10 1 1 2 2 4 0 1 3 2 5 0 1 4 2 6 0 1 5 2 7 0 1 2 2 3 0
output:
Case #1: Yes DDDRLRLDDD UUURLRLUUU Case #2: Yes DDRLRLDDDD UURLRLUUUU Case #3: No Case #4: Yes DRLRLRLDDD URLRLRLUUU
result:
ok all accept
Test #6:
score: 0
Accepted
time: 0ms
memory: 3756kb
input:
2 4 4 1 2 2 3 3 0 4 4 2 2 2 3 3 0 3 3 4 1 0
output:
Case #1: Yes RLRL DDDD UUUU RLRL Case #2: Yes DRLD URLU DRLD URLU
result:
ok all accept
Test #7:
score: 0
Accepted
time: 0ms
memory: 3760kb
input:
1 2 12 6 1 1 2 2 1 1 3 2 5 0 1 6 2 8 0 1 7 2 9 0 1 9 2 11 0 1 11 2 12 0
output:
Case #1: Yes DDRLRLRLRLRL UURLRLRLRLRL
result:
ok all accept
Test #8:
score: 0
Accepted
time: 0ms
memory: 3756kb
input:
1 4 3 2 1 1 4 3 0 1 1 2 3 1
output:
Case #1: Yes RLD RLU DDD UUU
result:
ok all accept
Test #9:
score: 0
Accepted
time: 379ms
memory: 6408kb
input:
2 20000 4 100000 1 1 1 4 1 4 3 13 2 0 4 3 6 4 1 2 1 6 2 0 1 3 10 3 0 4 4 13 3 0 1 4 5 4 0 2 4 10 4 0 3 4 7 1 0 2 4 12 3 0 1 2 9 2 0 4 2 9 1 1 4 1 7 4 1 1 3 11 3 0 1 1 4 4 0 3 3 9 2 0 2 3 9 4 0 3 4 4 2 0 2 4 6 1 0 1 3 2 1 1 3 2 4 2 0 2 1 7 4 0 2 4 7 2 0 4 2 8 4 1 3 1 6 1 0 3 4 9 2 0 1 1 7 1 0 1 3 9 3...
output:
Case #1: Yes RLRL RLRL DDDD UUUU RLRL RLRL RLRL RLRL RLRL DDDD UUUU RLRL DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UUUU DDDD UU...
result:
ok all accept
Test #10:
score: 0
Accepted
time: 228ms
memory: 6032kb
input:
2 6 15000 100000 1 1 6 1 1 3 2 1 8 0 1 4 5 5 1 3 3 3 12 0 6 2 3 8 0 1 3 5 5 1 4 2 4 3 1 6 2 1 7 0 6 3 6 5 1 4 1 6 7 0 5 2 3 4 1 1 4 4 11 0 2 6 1 16 0 2 5 6 7 0 6 2 5 12 0 5 4 3 6 0 2 1 2 9 0 6 5 3 10 0 3 1 3 4 1 2 6 5 15 0 6 6 5 9 1 3 5 2 15 0 6 1 6 6 0 6 4 2 6 0 6 6 4 8 1 2 5 6 10 0 5 2 4 11 0 2 5 ...
output:
Case #1: Yes DDDDRLDDDRLDRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR...
result:
ok all accept
Test #11:
score: 0
Accepted
time: 117ms
memory: 5764kb
input:
2 10000 10 100000 1 1 1 10 1 4 1 11 3 0 7 4 12 3 0 7 2 11 6 0 4 7 5 1 1 9 9 14 10 0 10 3 12 6 0 1 5 3 8 1 4 4 7 8 1 8 2 10 10 1 4 7 12 4 0 9 4 11 3 0 4 2 10 9 1 5 3 15 9 0 10 1 16 7 0 5 9 10 7 1 8 7 15 10 0 5 2 9 8 1 9 10 10 2 1 7 6 10 3 1 9 6 12 4 0 1 4 3 1 1 4 10 9 3 1 4 5 14 9 0 1 8 9 1 1 4 3 10 ...
output:
Case #1: Yes RLRLRLRLRL RLRLRLRLRL RLRLRLRLRL RLRLRLRLRL RLRLRLRLRL RLRLRLRLRL RLRLRLRLRL RLRLRLRLRL RLRLRLRLRL DDDDDDDDDD UUUUUUUUUU RLRLRLRLRL DDDDDDDDDD UUUUUUUUUU DDDDDDDDDD UUUUUUUUUU DDDDDDDDDD UUUUUUUUUU DDDDDDDDDD UUUUUUUUUU DDDDDDDDDD UUUUUUUUUU DDDDDDDDDD UUUUUUUUUU DDDDDDDDDD UUUUUUUUUU D...
result:
ok all accept
Test #12:
score: 0
Accepted
time: 30ms
memory: 6324kb
input:
2 5 20000 100000 1 1 5 1 1 4 5 5 8 1 3 1 1 3 1 4 2 4 12 1 3 5 2 11 1 1 2 5 5 1 1 4 2 12 1 3 4 5 6 1 3 2 5 8 1 2 5 4 7 1 3 5 1 8 1 3 1 5 5 1 3 4 2 12 1 1 3 1 13 1 1 4 2 6 1 3 4 3 6 1 1 5 1 6 1 4 5 2 15 0 2 4 1 7 1 2 1 4 10 1 5 4 1 9 1 5 5 4 11 1 2 1 3 11 1 3 5 2 9 1 4 5 1 12 1 1 5 4 7 1 1 2 5 4 1 5 5...
output:
Case #1: Yes DDDDDDDDDDDDRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR...
result:
ok all accept
Test #13:
score: 0
Accepted
time: 33ms
memory: 6232kb
input:
2 5 19998 100000 1 1 5 1 1 1 3 3 9 0 4 4 2 8 1 3 1 4 9 0 5 1 1 9 0 1 1 5 8 0 2 3 2 6 0 5 5 1 15 0 4 5 4 14 0 3 4 4 12 0 3 5 1 10 0 3 2 2 12 0 1 5 3 8 1 3 2 3 6 0 4 1 1 9 0 5 1 4 5 0 5 1 5 4 0 1 2 2 12 0 4 4 3 8 1 5 2 2 4 0 2 5 5 10 0 4 3 1 4 0 3 2 1 12 0 4 1 2 10 0 3 5 2 6 1 4 3 3 9 0 3 4 5 11 0 1 5...
output:
Case #1: Yes RLRLDDDDRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR...
result:
ok all accept
Test #14:
score: 0
Accepted
time: 33ms
memory: 5824kb
input:
2 12000 7 100000 1 1 1 7 1 3 2 9 4 0 7 2 9 5 1 2 1 10 1 0 3 6 8 7 0 3 5 12 7 0 1 3 11 2 0 6 1 8 4 1 7 2 11 7 0 6 5 13 2 0 7 2 15 3 0 1 6 5 2 1 5 7 15 7 0 3 4 13 3 0 7 6 11 1 0 6 2 16 1 0 5 4 6 2 0 3 5 11 2 0 1 2 9 1 0 7 2 15 1 0 1 1 9 5 0 6 4 15 6 0 7 3 16 4 0 4 1 5 4 1 7 5 12 2 0 7 5 13 4 0 5 5 14 ...
output:
Case #1: Yes RLRLRLD RLRLRLU RLRLRLD RLRLRLU DDDDDDD UUUUUUU RLRLRLD RLRLRLU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU DDDDDDD UUUUUUU...
result:
ok all accept
Test #15:
score: 0
Accepted
time: 32ms
memory: 5520kb
input:
2 15 6000 100000 1 1 15 1 1 10 4 5 8 0 12 14 15 15 1 5 10 15 14 0 5 6 8 14 0 12 10 1 13 0 9 8 8 9 1 3 1 8 8 0 13 8 3 13 0 15 15 5 19 0 3 2 11 7 0 9 2 6 4 1 5 6 3 13 0 2 9 9 10 0 2 13 11 16 0 1 9 7 12 0 15 10 2 16 0 9 15 2 17 0 8 14 1 21 0 3 8 2 18 0 8 5 11 12 0 11 13 9 18 0 14 12 11 15 0 9 3 8 7 0 8...
output:
Case #1: Yes DDDDRLDDRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR...
result:
ok all accept
Test #16:
score: 0
Accepted
time: 0ms
memory: 3616kb
input:
10 4 9 20 1 1 4 1 1 1 2 4 5 0 3 3 4 8 0 3 2 2 9 0 3 1 4 9 0 3 2 2 9 0 3 2 1 6 0 2 3 1 9 0 4 3 3 9 0 4 3 4 6 0 3 1 3 7 0 3 2 3 9 0 1 1 3 9 0 4 2 4 6 0 3 3 2 9 0 3 2 3 9 0 2 1 3 7 0 2 1 3 7 0 4 4 2 9 0 1 4 3 9 0 9 4 20 1 1 1 4 1 1 3 9 2 0 1 1 9 1 0 3 4 9 1 0 1 2 9 2 0 3 2 4 4 1 1 2 6 2 1 1 1 7 3 0 2 2...
output:
Case #1: Yes DRLRLRLRL URLRLRLRL DRLRLRLRL URLRLRLRL Case #2: Yes RLRL RLRL RLRL RLRL RLRL DDDD UUUU DDDD UUUU Case #3: Yes DDDDDRLRL UUUUURLRL DDDDDRLRL UUUUURLRL Case #4: Yes RLRL DDDD UUUU RLRL RLRL RLRL DDDD UUUU RLRL Case #5: Yes RLRL DDDD UUUU RLRL RLRL RLRL RLRL DDDD UUUU Case #6: Yes RLRL DD...
result:
ok all accept
Test #17:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
10 5 10 20 1 1 5 1 1 1 1 1 9 0 4 2 1 4 1 3 3 1 6 0 4 5 1 6 0 2 5 2 7 0 4 4 5 9 0 1 3 4 8 0 2 5 2 8 0 2 1 4 2 1 2 3 2 10 0 1 1 4 2 1 1 2 1 6 0 2 2 3 7 0 2 3 2 10 0 1 3 3 10 0 4 1 3 6 0 1 2 3 6 0 2 4 1 10 0 2 1 2 8 0 10 5 20 1 1 1 5 1 4 5 10 4 0 3 4 4 3 1 1 3 6 2 0 4 2 5 1 1 2 1 10 3 0 1 1 5 3 1 2 3 4...
output:
Case #1: Yes DDDDRLRLRL UUUURLRLRL DDDDRLRLRL UUUURLRLRL RLRLRLRLRL Case #2: Yes RLRLD RLRLU RLRLD RLRLU DDDDD UUUUU DDDDD UUUUU DDDDD UUUUU Case #3: No Case #4: Yes DDRLRLRLRL UURLRLRLRL DDRLRLRLRL UURLRLRLRL RLRLRLRLRL Case #5: Yes DDRLDDDDRL UURLUUUURL DDRLDDDDRL UURLUUUURL RLRLRLRLRL Case #6: Ye...
result:
ok all accept
Test #18:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
100 3 4 5 1 1 3 1 1 3 2 3 4 1 2 3 1 4 1 1 1 3 4 0 3 1 2 4 0 3 4 5 1 1 3 1 1 3 3 1 4 0 2 3 1 4 0 1 2 2 4 0 1 3 1 4 0 4 3 5 1 1 1 3 1 1 1 4 1 0 3 2 4 2 0 1 2 4 1 0 3 2 4 2 0 3 4 5 1 1 3 1 1 1 3 2 4 0 2 3 1 4 0 2 3 1 4 0 2 1 1 3 1 3 4 5 1 1 3 1 1 2 2 1 4 1 2 1 1 4 0 1 1 2 4 0 3 1 2 2 0 4 3 5 1 1 1 3 1 ...
output:
Case #1: Yes RLDD RLUU RLRL Case #2: Yes RLRL RLRL RLRL Case #3: Yes DDD UUU DDD UUU Case #4: Yes DDRL UURL RLRL Case #5: Yes RLDD RLUU RLRL Case #6: Yes RLD RLU DDD UUU Case #7: Yes DDD UUU RLD RLU Case #8: Yes RLRL RLRL RLRL Case #9: Yes RLRL RLRL RLRL Case #10: Yes DDD UUU RLD RLU Case #11: Yes D...
result:
ok all accept
Extra Test:
score: 0
Extra Test Passed