QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#884457 | #9729. Dividing Sequence | guosoun | Compile Error | / | / | C++17 | 2.4kb | 2025-02-06 08:32:07 | 2025-02-06 08:32:09 |
Judging History
This is the latest submission verdict.
- [2025-02-06 08:32:09]
- Judged
- Verdict: Compile Error
- Time: 0ms
- Memory: 0kb
- [2025-02-06 08:32:07]
- Submitted
answer
#include <bits/stdc++.h>
#include "../cpp-dump/cpp-dump.hpp"
template <class T>
using V = std::vector<T>;
template <class T>
void chkmin(T &x, const T &y) {
if (x > y) x = y;
}
using ll = long long;
struct hope {
V<V<int>> dp;
V<int> a, b;
int r;
hope(V<int> a) : a(a) {
int n = a.size(), m = b.size();
dp.assign(n, V<int>(m + 1, 1e9));
r = 1e9;
if (!b.size()) r = a[0];
for (int i = 0; i < n; i++) {
auto tmp = !i ? V<int>(m + 1, 1e9) : dp[i - 1];
if (!i) tmp[0] = 0;
for (int j = 0; j <= m && j <= i; j++) {
if (j < m && b[j] == a[i]) chkmin(dp[i][j + 1], tmp[j]);
if (tmp[j] == -1) {
dp[i][j] = -1;
continue;
}
if (tmp[j] >= 1e9) continue;
int k = i - j;
if (k > m) chkmin(dp[i][j], tmp[j]);
if (k == m) chkmin(dp[i][j], a[i]);
if (k < m) {
if (a[i] < b[k]) chkmin(dp[i][j], -1);
if (b[k] == a[i]) chkmin(dp[i][j], tmp[j]);
}
}
if (i + 1 < n && dp[i][m] < a[i + 1]) chkmin(r, a[i + 1]);
if (i == n - 1 && dp[i][m] <= 0) r = 0;
}
if (r < 0) r = 0;
}
void push_back(int x) {
b.push_back(x);
int n = a.size(), m = b.size();
for (int i = 0; i < n; i++) dp[i].push_back(1e9);
r = 1e9;
if (!b.size()) r = a[0];
for (int i = 0; i < n; i++) {
for (int j = m - 1; j <= m && j <= i; j++) {
int tj = !i ? !j ? 0 : 1e9 : dp[i - 1][j];
if (j < m && b[j] == a[i]) chkmin(dp[i][j + 1], tj);
if (tj == -1) {
dp[i][j] = -1;
continue;
}
if (tj >= 1e9) continue;
int k = i - j;
if (k > m) chkmin(dp[i][j], tj);
if (k == m) chkmin(dp[i][j], a[i]);
if (k < m) {
if (a[i] < b[k]) chkmin(dp[i][j], -1);
if (b[k] == a[i]) chkmin(dp[i][j], tj);
}
}
if (i + 1 < n && dp[i][m] < a[i + 1]) chkmin(r, a[i + 1]);
if (i == n - 1 && dp[i][m] <= 0) r = 0;
}
if (r < 0) r = 0;
}
};
int main() {
std::cin.tie(0)->sync_with_stdio(0);
int t;
std::cin >> t;
while (t--) {
int n;
std::cin >> n;
V<int> a(n);
for (int &x : a) std::cin >> x;
hope h(a);
while (int t = h.r) h.push_back(t);
std::cout << h.b.size() << '\n';
for (int i : h.b) std::cout << i << ' ';
std::cout << '\n';
}
}
詳細信息
answer.code:3:10: fatal error: ../cpp-dump/cpp-dump.hpp: No such file or directory 3 | #include "../cpp-dump/cpp-dump.hpp" | ^~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated.