QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#854214 | #9926. Flipping Paths | ucup-team3691 | WA | 6ms | 4492kb | C++20 | 4.4kb | 2025-01-11 22:34:47 | 2025-01-11 22:34:48 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using namespace chrono;
using ll = long long;
using ull = unsigned long long;
string to_string(const string &s) {
return '"' + s + '"';
}
string to_string(bool b) {
return b ? "true" : "false";
}
template <typename A, typename B>
string to_string(const pair<A, B> &p) {
return "(" + to_string(p.first) + ", " + to_string(p.second) + ")";
}
template <typename T>
string to_string(const T &v) {
string s = "{";
bool first = true;
for (const auto &it : v) {
if (!first)
s += ", ";
else
first = false;
s += to_string(it);
}
return s += "}";
}
void debug_out() {
cerr << endl;
}
template <typename T, typename... Args>
void debug_out(const T &first, const Args&... rest) {
cerr << to_string(first) << " ";
debug_out(rest...);
}
#define debug(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
auto startTime = high_resolution_clock::now();
int get_time() {
auto stopTime = chrono::high_resolution_clock::now();
auto duration = duration_cast<milliseconds>(stopTime - startTime);
return duration.count(); // in ms
}
int n, m;
bool solve(vector<vector<int>> v) {
auto v2 = v;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
v2[i][j] = 0;
}
}
auto v4 = v2;
if (v[1][1] == 1) {
v2[1][1] = 1;
}
for (int d = 1; d <= n + m - 1; ++d) {
for (int i = 1; i <= n; ++i) {
int j = d - i + 1;
if (j < 1 || j > m) {
continue;
}
if (v[i][j] % 2 != v2[i][j] % 2) {
return 0;
}
//if (v2[i][j] > 400) {
//assert(1 == 0);
// return 0;
//}
if (j + 1 <= m) {
if (i + 1 <= n) {
if (v[i][j + 1] % 2 != v2[i][j + 1] % 2) {
if (v2[i][j] == 0) {
v2[i][j] += 2;
v4[i][j] += 2;
}
int x = v2[i][j] / 2;
if (x % 2 == 0) {
++x;
}
v2[i][j + 1] += x;
v2[i + 1][j] += v2[i][j] - x;
} else {
int x = v2[i][j] / 2;
if (x % 2 == 1)
++x;
v2[i][j + 1] += x;
v2[i + 1][j] += v2[i][j] - x;
}
} else {
v2[i][j + 1] += v2[i][j];
}
} else if (i + 1 <= n) {
v2[i + 1][j] += v2[i][j];
}
}
}
for (int d = n + m - 1; d >= 1; --d) {
for (int i = 1; i <= n; ++i) {
int j = d - i + 1;
if (j < 1 || j > m) {
continue;
}
if (i + 1 <= n) {
if (v4[i + 1][j] > 0) {
v2[i][j] += v4[i + 1][j];
v4[i][j] += v4[i + 1][j];
v4[i + 1][j] = 0;
}
}
if (j + 1 <= m) {
if (v4[i][j + 1] > 0) {
v2[i][j] += v4[i][j + 1];
v4[i][j] += v4[i][j + 1];
v4[i][j + 1] = 0;
}
}
}
}
cout << "YES\n";
cout << v2[n][m] << "\n";
while (v2[n][m] > 0) {
int i = 1, j = 1;
string s;
while (i < n || j < m) {
--v2[i][j];
v[i][j] ^= 1;
if (j + 1 <= m && v2[i][j + 1] > 0) {
s.push_back('R');
++j;
} else if (i + 1 <= n && v2[i + 1][j] > 0) {
s.push_back('D');
++i;
} else {
assert(1 == 0);
}
}
--v2[n][m];
v[n][m] ^= 1;
cout << s << "\n";
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
if (v[i][j] == 1) {
while (1);
}
//assert(v[i][j] == 0);
}
}
return 1;
}
void solve() {
cin >> n >> m;
//n = 4;
//m = 4;
vector<vector<int>> v(n + 1, vector<int>(m + 1));
for (int i = 1; i <= n; ++i) {
string s;
cin >> s;
for (int j = 1; j <= m; ++j) {
v[i][j] = (s[j - 1] == 'W') ? 0 : 1;
//v[i][j] = rng() % 2;
}
}
bool ok = solve(v);
if (ok) {
return;
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
v[i][j] ^= 1;
}
}
ok = solve(v);
if (!ok) {
cout << "NO\n";
}
}
int main() {
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int t = 1;
cin >> t;
while (t--)
solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3660kb
input:
4 3 3 WBB BWB BBW 1 5 WWWWW 2 2 BB BB 4 1 W B B W
output:
YES 2 RRDD DDRR YES 0 YES 0 NO
result:
ok ok (4 test cases)
Test #2:
score: 0
Accepted
time: 1ms
memory: 3668kb
input:
323 1 2 BB 1 2 BW 1 2 WB 1 2 WW 2 1 B B 2 1 B W 2 1 W B 2 1 W W 1 3 BBB 1 3 BBW 1 3 BWB 1 3 BWW 1 3 WBB 1 3 WBW 1 3 WWB 1 3 WWW 2 2 BB BB 2 2 BB BW 2 2 BB WB 2 2 BB WW 2 2 BW BB 2 2 BW BW 2 2 BW WB 2 2 BW WW 2 2 WB BB 2 2 WB BW 2 2 WB WB 2 2 WB WW 2 2 WW BB 2 2 WW BW 2 2 WW WB 2 2 WW WW 3 1 B B B 3 ...
output:
YES 1 R NO NO YES 0 YES 1 D NO NO YES 0 YES 1 RR NO NO NO NO NO NO YES 0 YES 0 NO YES 1 RD NO YES 1 DR NO YES 2 RD DR NO NO YES 2 RD DR NO YES 1 DR NO YES 1 RD NO YES 0 YES 1 DD NO NO NO NO NO NO YES 0 YES 1 RRR NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES 0 YES 0 NO NO NO NO NO YES 1 RRD NO NO NO ...
result:
ok ok (323 test cases)
Test #3:
score: 0
Accepted
time: 1ms
memory: 3604kb
input:
278 2 4 BWBW WWBB 2 4 BWBW WWBW 2 4 BWBW WWWB 2 4 BWBW WWWW 2 4 BWWB BBBB 2 4 BWWB BBBW 2 4 BWWB BBWB 2 4 BWWB BBWW 2 4 BWWB BWBB 2 4 BWWB BWBW 2 4 BWWB BWWB 2 4 BWWB BWWW 2 4 BWWB WBBB 2 4 BWWB WBBW 2 4 BWWB WBWB 2 4 BWWB WBWW 2 4 BWWB WWBB 2 4 BWWB WWBW 2 4 BWWB WWWB 2 4 BWWB WWWW 2 4 BWWW BBBB 2 ...
output:
NO NO NO NO NO NO YES 3 RRRD RRDR DRRR NO NO NO NO NO NO NO NO NO YES 2 RRDR DRRR NO NO NO YES 1 DRRR NO NO NO NO NO NO NO NO NO NO NO NO NO YES 2 RRRD DRRR NO NO YES 2 RRRD DRRR NO NO NO NO NO NO NO NO NO NO NO NO NO YES 1 DRRR NO NO NO YES 2 RRDR DRRR NO NO NO NO NO NO NO NO NO YES 3 RRRD RRDR DRR...
result:
ok ok (278 test cases)
Test #4:
score: 0
Accepted
time: 1ms
memory: 3656kb
input:
333 3 3 BBW WWB BWB 3 3 BBW WWB BWW 3 3 BBW WWB WBB 3 3 BBW WWB WBW 3 3 BBW WWB WWB 3 3 BBW WWB WWW 3 3 BBW WWW BBB 3 3 BBW WWW BBW 3 3 BBW WWW BWB 3 3 BBW WWW BWW 3 3 BBW WWW WBB 3 3 BBW WWW WBW 3 3 BBW WWW WWB 3 3 BBW WWW WWW 3 3 BWB BBB BBB 3 3 BWB BBB BBW 3 3 BWB BBB BWB 3 3 BWB BBB BWW 3 3 BWB ...
output:
YES 3 RDRD DRDR DDRR NO NO NO NO NO YES 3 RDRD DRRD DDRR NO NO NO NO NO NO NO NO NO YES 3 RRDD RDDR DDRR NO NO NO NO NO YES 3 RRDD RDRD DDRR NO NO NO NO NO NO NO NO NO NO NO NO NO YES 3 RRDD RDRD DRRD NO NO NO NO NO YES 3 RRDD RDRD DRDR NO NO NO YES 2 RDRD DRRD NO NO NO NO NO NO NO NO NO YES 2 RDRD ...
result:
ok ok (333 test cases)
Test #5:
score: 0
Accepted
time: 1ms
memory: 3732kb
input:
266 3 3 WWB WWW WWW 3 3 WWW BBB BBB 3 3 WWW BBB BBW 3 3 WWW BBB BWB 3 3 WWW BBB BWW 3 3 WWW BBB WBB 3 3 WWW BBB WBW 3 3 WWW BBB WWB 3 3 WWW BBB WWW 3 3 WWW BBW BBB 3 3 WWW BBW BBW 3 3 WWW BBW BWB 3 3 WWW BBW BWW 3 3 WWW BBW WBB 3 3 WWW BBW WBW 3 3 WWW BBW WWB 3 3 WWW BBW WWW 3 3 WWW BWB BBB 3 3 WWW ...
output:
NO NO NO NO YES 3 RRDD RDRD RDDR NO NO NO NO NO YES 1 RRDD NO NO NO NO NO NO NO NO NO NO NO NO NO YES 3 RRDD DRRD DDRR NO NO NO NO NO YES 3 RRDD DRDR DDRR NO NO NO YES 2 DRRD DDRR NO NO NO NO NO NO NO NO NO YES 2 DRDR DDRR NO NO NO NO NO NO NO NO NO YES 2 RDRD RDDR NO NO NO NO NO NO NO NO NO YES 0 Y...
result:
ok ok (266 test cases)
Test #6:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
245 4 2 WW BB WB BW 4 2 WW BB WB WB 4 2 WW BB WB WW 4 2 WW BB WW BB 4 2 WW BB WW BW 4 2 WW BB WW WB 4 2 WW BB WW WW 4 2 WW BW BB BB 4 2 WW BW BB BW 4 2 WW BW BB WB 4 2 WW BW BB WW 4 2 WW BW BW BB 4 2 WW BW BW BW 4 2 WW BW BW WB 4 2 WW BW BW WW 4 2 WW BW WB BB 4 2 WW BW WB BW 4 2 WW BW WB WB 4 2 WW B...
output:
NO NO YES 3 RDDD DRDD DDDR NO YES 3 RDDD DRDD DDRD NO NO NO NO NO YES 3 RDDD DDRD DDDR NO YES 1 RDDD NO NO NO NO NO NO NO NO NO NO NO YES 2 DRDD DDDR NO NO NO NO NO YES 2 DRDD DDRD NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES 2 DDRD DDDR NO NO NO NO NO YES 0 YES 1 DDDD NO NO NO NO NO NO NO...
result:
ok ok (245 test cases)
Test #7:
score: 0
Accepted
time: 1ms
memory: 3856kb
input:
200 5 3 BBB BBB WBW BBW BBW 5 3 BBB BBB WBW BBW BWB 5 3 BBB BBB WBW BBW BWW 5 3 BBB BBB WBW BBW WBB 5 3 BBB BBB WBW BBW WBW 5 3 BBB BBB WBW BBW WWB 5 3 BBB BBB WBW BBW WWW 5 3 BBB BBB WBW BWB BBB 5 3 BBB BBB WBW BWB BBW 5 3 BBB BBB WBW BWB BWB 5 3 BBB BBB WBW BWB BWW 5 3 BBB BBB WBW BWB WBB 5 3 BBB ...
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 ok (200 test cases)
Test #8:
score: 0
Accepted
time: 1ms
memory: 3828kb
input:
200 5 4 BWWB WBWW WBWW WBWW WBBW 5 4 BWWB WBWW WBWW WBWW WBWB 5 4 BWWB WBWW WBWW WBWW WBWW 5 4 BWWB WBWW WBWW WBWW WWBB 5 4 BWWB WBWW WBWW WBWW WWBW 5 4 BWWB WBWW WBWW WBWW WWWB 5 4 BWWB WBWW WBWW WBWW WWWW 5 4 BWWB WBWW WBWW WWBB BBBB 5 4 BWWB WBWW WBWW WWBB BBBW 5 4 BWWB WBWW WBWW WWBB BBWB 5 4 BW...
output:
NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES 4 RRDRDDD RDDRDRD RDDDRDR DDDDRRR NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES 4 RRDRDDD RDDRDRD RDDDRRD DDDDRRR NO NO NO NO NO NO NO NO NO YES 4 RRDRDDD RDDRDRD RDDDDRR DDDDRRR NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO ...
result:
ok ok (200 test cases)
Test #9:
score: -100
Wrong Answer
time: 6ms
memory: 4492kb
input:
5 200 200 WBWWWBWBWWWWBWWWBBBBBBWBWWBWWBBWBWWBWBBBWBBWBBWBWBBWWWWWWBWWWBBWBWBWBWBBWBWWBWWBWBBBWWWBWBBWWBBBBBWWBBBBWWBBWBWWWBBWBWBWWWWBBWBWWBWWWWWBWWBBBBBWBBWBWWWWWBWWWBWBWWBBBBWWBWWWWBWBBWBWBBWWBWWBBWBWBWWBWBWB BBWBBBBBWBWWWWWWWWWWBBWWWWBWWBWWBBBBBWWWBWBWWBBWBBWWBBBBBWWBWBWBWWBWBWBBBBWWWWBWBBBBBWBBB...
output:
YES 638 RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD...
result:
wrong answer Integer 638 violates the range [0, 400] (test case 1)