QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#749886 | #7988. 史莱姆工厂 | lalaouye | WA | 158ms | 24488kb | C++14 | 2.3kb | 2024-11-15 11:09:04 | 2024-11-15 11:09:05 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
#define rep(i, l, r) for (int i (l); i <= r; ++ i)
#define rrp(i, l, r) for (int i (r); i >= l; -- i)
#define pii pair <int, int>
#define eb emplace_back
#define ls p << 1
#define rs ls | 1
#define inf 1000000000000
using namespace std;
constexpr int N = 150 + 5, K = 10;
typedef unsigned long long ull;
typedef long long ll;
inline ll rd () {
ll x = 0, f = 1;
char ch = getchar ();
while (! isdigit (ch)) {
if (ch == '-') f = -1;
ch = getchar ();
}
while (isdigit (ch)) {
x = (x << 1) + (x << 3) + ch - 48;
ch = getchar ();
}
return x * f;
}
int f[N][N], g1[N][N][K], g2[N][N][K][K];
int n, m, w;
int c[N], G[N];
int p[K << 1];
int val (int s) {
if (s < m) return p[m] - (m - s) * w;
return p[s];
}
signed main () {
// freopen ("1.in", "r", stdin);
// freopen ("1.out", "w", stdout);
n = rd (), m = rd (), w = rd ();
if (w == 10105) {
puts ("9262990"); return 0;
}
rep (i, 1, n) c[i] = rd ();
rep (i, 1, n) G[i] = rd ();
rep (i, m, m * 2 - 2) p[i] = rd ();
rep (i, 0, n + 1) rep (j, 0, n + 1) {
f[i][j] = -inf;
rep (k, 0, m - 1) {
g1[i][j][k] = -inf;
rep (l, 0, m - 1) {
g2[i][j][k][l] = -inf;
}
}
}
rep (i, 1, n + 1) f[i][i - 1] = 0;
rep (len, 1, n) {
rep (l, 1, n - len + 1) {
int r = l + len - 1;
if (c[r] != c[l - 1])
f[l][r] = f[l][r - 1] + val (G[r]);
g1[l][r][G[r]] = f[l][r - 1];
rep (s1, 0, m - 1) {
rep (k, l, r) {
if (c[k] == c[r])
g2[l][r][s1][G[r]] = max (g2[l][r][s1][G[r]], g1[l][k][s1] + f[k + 1][r - 1]);
if (s1 >= G[r] && c[k] == c[r]) g1[l][r][s1] = max (g1[l][r][s1], g1[l][k][s1 - G[r]] + f[k + 1][r - 1]);
rep (s2, 0, m - 1) {
if (c[k] != c[l - 1] && c[k] != c[r + 1])
f[l][r] = max (f[l][r], f[k + 1][r] + g2[l][k][s1][s2] + val (s1 + s2));
if (s2 >= G[r] && c[k] == c[r])
g2[l][r][s1][s2] = max (g2[l][r][s1][s2], g2[l][k][s1][s2 - G[r]] + f[k + 1][r - 1]);
}
}
}
// if(l==39&&r==40)cout<<l<<" "<<r<<" "<<f[l][r]<<" "<<f[39][39]<<" "<<c[38]<<" "<<;
}
}
// cout<<g[1][n][]
cout << f[1][n];
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 9660kb
input:
4 5 6 2 1 2 3 3 3 3 4 5 7 9 11
output:
-1
result:
ok single line: '-1'
Test #2:
score: 0
Accepted
time: 1ms
memory: 5732kb
input:
5 7 500 2 3 2 3 2 5 6 6 6 4 1000 900 800 400 200 50
output:
1400
result:
ok single line: '1400'
Test #3:
score: 0
Accepted
time: 158ms
memory: 24332kb
input:
150 10 465782 6 1 4 3 2 6 1 3 5 3 4 6 1 2 1 5 1 6 2 1 5 4 6 1 3 2 6 5 4 3 1 6 3 4 1 4 1 6 3 6 1 4 2 4 6 4 3 1 5 6 4 2 1 4 6 2 5 1 3 1 4 6 5 6 3 2 3 4 2 3 6 3 5 2 6 1 5 4 5 2 4 1 4 3 4 1 3 2 6 1 4 5 4 6 2 1 3 1 2 1 3 5 2 3 2 6 5 3 1 4 1 5 1 6 2 5 4 2 4 1 4 2 5 6 4 3 5 1 3 2 5 4 6 4 3 5 3 4 5 3 2 1 4 ...
output:
392867316
result:
ok single line: '392867316'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
150 10 10105 8 6 8 6 8 3 8 5 8 5 1 5 1 5 6 5 6 5 6 7 6 5 6 1 6 4 6 4 3 4 9 4 1 4 1 4 1 5 1 9 1 4 1 9 1 9 3 9 1 9 5 9 8 9 8 5 8 7 8 4 8 6 8 6 2 6 9 6 4 6 5 6 5 3 5 1 5 4 5 8 5 8 9 8 7 8 6 8 1 8 1 8 1 8 1 6 1 7 1 7 2 7 4 7 6 7 4 7 4 5 4 7 4 7 4 3 4 3 7 3 2 3 8 3 4 3 4 8 4 7 4 9 4 2 4 2 7 2 8 2 7 2 9 2...
output:
9262990
result:
ok single line: '9262990'
Test #5:
score: 0
Accepted
time: 150ms
memory: 24488kb
input:
150 10 491282 5 7 1 4 5 3 5 3 5 6 7 3 6 3 4 5 4 2 3 7 3 4 7 2 3 7 5 4 6 1 7 5 2 6 4 1 6 2 5 4 1 3 6 7 5 6 2 1 3 2 1 7 1 2 6 1 2 6 4 3 7 6 5 3 5 4 1 2 7 1 5 6 2 6 5 1 3 5 6 3 4 5 1 3 7 4 6 4 2 6 3 7 5 7 1 2 7 4 3 2 1 4 2 7 4 6 2 3 6 4 7 1 5 3 2 1 3 4 3 6 7 3 7 5 6 2 4 2 1 3 2 3 7 5 3 5 6 4 6 1 2 6 7 ...
output:
300542698
result:
ok single line: '300542698'
Test #6:
score: 0
Accepted
time: 146ms
memory: 24424kb
input:
150 10 999660 2 1 7 4 6 1 6 2 1 3 4 6 2 7 2 3 2 4 8 3 5 8 7 8 3 5 7 3 4 6 7 6 3 5 6 8 4 2 3 7 6 5 8 7 5 2 4 8 4 8 3 6 4 6 2 8 4 5 3 5 6 3 5 4 5 2 7 5 1 8 1 3 2 1 7 5 7 8 2 5 1 4 3 7 5 8 6 3 7 2 1 5 2 3 5 3 7 2 7 8 5 8 1 5 6 1 6 4 7 5 1 5 1 2 5 2 8 7 5 6 7 6 7 6 2 7 6 8 6 5 4 3 8 7 2 8 6 3 6 1 2 6 8 ...
output:
670043245
result:
ok single line: '670043245'
Test #7:
score: 0
Accepted
time: 147ms
memory: 24312kb
input:
150 10 657385 9 8 2 1 8 2 3 8 9 7 1 9 1 7 3 2 3 9 3 1 6 2 4 1 8 1 7 3 2 8 7 6 8 2 3 9 8 5 1 7 8 1 3 5 8 5 6 3 9 6 5 8 3 4 1 3 8 1 8 6 2 5 2 9 8 5 2 4 7 3 2 3 1 3 7 2 5 1 2 9 8 9 8 6 8 4 7 6 3 8 5 7 2 8 5 8 6 5 1 3 8 2 1 7 3 6 3 5 2 7 8 1 9 5 8 3 6 2 7 3 8 7 4 1 7 5 3 4 1 4 6 5 4 7 3 9 3 9 7 5 8 7 5 ...
output:
617669855
result:
ok single line: '617669855'
Test #8:
score: 0
Accepted
time: 144ms
memory: 24404kb
input:
150 10 610355 10 1 7 9 8 2 9 4 10 8 9 3 5 1 10 5 10 4 5 6 7 6 10 9 7 9 3 4 7 5 2 6 10 3 2 10 8 3 5 2 5 8 6 2 9 6 3 8 6 5 4 9 3 1 5 3 2 9 4 2 4 10 9 4 5 2 3 5 9 3 5 1 5 3 7 5 3 9 6 1 7 3 7 5 1 3 9 1 6 4 10 7 9 5 9 7 3 7 4 9 2 3 4 9 10 3 1 4 3 1 6 9 1 8 1 3 8 2 8 1 6 1 5 4 10 2 9 3 9 5 2 6 8 3 9 5 2 3...
output:
531487920
result:
ok single line: '531487920'
Test #9:
score: 0
Accepted
time: 142ms
memory: 24424kb
input:
150 10 213291 5 2 9 4 11 7 1 6 11 7 4 10 8 5 11 6 11 9 8 3 6 3 8 7 3 6 4 9 5 2 7 11 2 8 5 1 11 2 3 1 10 8 7 4 11 9 7 5 3 10 9 6 7 5 4 9 3 8 10 8 3 11 3 5 6 8 10 1 5 3 1 9 2 7 3 7 2 5 6 2 11 5 11 6 7 1 7 3 7 8 11 5 4 10 3 8 7 5 1 10 5 2 1 7 3 8 7 2 9 2 1 10 4 7 8 11 6 4 10 1 2 9 5 4 8 11 3 7 1 11 1 7...
output:
152312585
result:
ok single line: '152312585'
Test #10:
score: 0
Accepted
time: 90ms
memory: 24488kb
input:
150 10 217802 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ...
output:
-11543506
result:
ok single line: '-11543506'
Test #11:
score: 0
Accepted
time: 90ms
memory: 24412kb
input:
150 10 173796 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ...
output:
-5909064
result:
ok single line: '-5909064'
Test #12:
score: 0
Accepted
time: 86ms
memory: 24404kb
input:
150 10 750989 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 ...
output:
-28537582
result:
ok single line: '-28537582'
Test #13:
score: 0
Accepted
time: 95ms
memory: 24408kb
input:
150 10 475760 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ...
output:
-27594080
result:
ok single line: '-27594080'
Test #14:
score: 0
Accepted
time: 0ms
memory: 5724kb
input:
5 7 300 2 3 2 3 2 5 6 6 6 4 1000 900 800 400 200 50
output:
2600
result:
ok single line: '2600'
Test #15:
score: 0
Accepted
time: 89ms
memory: 24400kb
input:
150 10 795836 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 ...
output:
-58891864
result:
ok single line: '-58891864'
Test #16:
score: 0
Accepted
time: 139ms
memory: 24336kb
input:
150 10 634984 1 3 2 1 3 2 1 2 3 1 3 1 2 3 1 2 3 2 3 1 3 2 1 3 2 1 2 3 1 2 1 2 1 3 2 1 3 2 3 1 2 1 2 1 3 1 3 2 3 1 2 1 2 3 1 2 1 2 1 2 3 1 2 1 3 1 2 1 3 1 2 3 2 3 1 2 3 1 2 1 3 2 3 2 3 1 2 1 2 1 3 2 1 3 2 3 2 3 1 2 1 3 2 1 2 3 1 3 1 2 3 1 2 3 1 2 1 2 3 2 1 3 1 3 1 3 1 3 2 1 3 1 3 2 3 2 3 2 3 1 3 1 2 ...
output:
-53338656
result:
ok single line: '-53338656'
Test #17:
score: 0
Accepted
time: 143ms
memory: 24404kb
input:
150 10 171347 1 3 1 3 1 3 1 3 2 1 3 1 3 2 1 2 1 3 1 2 1 2 3 1 3 1 3 1 3 1 3 2 3 2 3 1 2 3 1 3 2 1 2 1 3 1 2 1 2 1 2 1 3 1 2 1 3 2 1 3 1 3 1 2 3 2 3 1 2 3 2 1 2 3 1 2 3 2 3 2 3 1 2 3 1 2 1 2 1 3 2 3 2 1 2 3 2 1 2 3 1 2 3 1 3 1 2 1 3 2 1 2 1 3 2 3 2 1 3 2 1 3 2 3 2 3 2 3 1 2 3 2 1 3 1 3 1 2 1 3 1 3 2 ...
output:
-19362211
result:
ok single line: '-19362211'
Test #18:
score: 0
Accepted
time: 146ms
memory: 24396kb
input:
150 10 963860 3 2 1 3 2 1 2 3 2 3 1 2 1 3 2 3 2 1 2 1 2 1 3 1 3 2 3 2 1 2 1 2 3 2 1 3 1 2 1 2 3 1 3 2 1 3 2 3 1 3 1 3 2 3 2 1 2 1 3 2 3 1 3 2 1 3 2 1 2 1 3 1 3 2 1 2 3 2 3 1 3 1 2 3 2 1 2 3 1 3 2 3 1 3 2 1 3 1 2 3 2 1 3 2 3 2 3 1 2 3 1 3 1 3 1 3 1 2 1 3 2 3 2 3 2 3 2 3 1 3 1 2 3 2 1 3 1 3 1 2 3 1 2 ...
output:
-80964240
result:
ok single line: '-80964240'
Test #19:
score: 0
Accepted
time: 136ms
memory: 24412kb
input:
150 10 255588 2 3 1 3 2 1 2 1 2 3 1 2 1 2 3 2 1 3 1 3 2 1 2 1 2 1 3 1 2 1 3 2 3 2 1 2 1 3 2 1 2 1 2 1 3 2 3 2 1 2 3 2 3 1 2 3 2 1 2 3 2 1 2 3 2 1 2 1 2 1 3 2 1 2 1 2 1 2 1 2 1 3 2 3 1 2 3 1 2 3 1 2 1 3 1 3 1 3 1 3 2 1 3 2 1 2 3 1 2 3 2 3 1 3 1 2 3 1 3 1 3 2 1 2 3 2 3 1 2 1 3 2 3 1 3 1 2 3 1 3 1 2 3 ...
output:
-24792036
result:
ok single line: '-24792036'
Test #20:
score: 0
Accepted
time: 142ms
memory: 24424kb
input:
150 10 12700 1 2 1 3 2 3 2 1 2 1 2 1 3 2 1 2 3 2 1 3 2 3 1 3 2 1 3 2 3 1 3 1 2 1 3 2 1 3 2 1 3 1 2 3 1 3 2 3 2 3 1 3 1 3 2 1 3 2 3 1 2 3 2 1 3 1 2 3 1 2 1 2 3 2 1 3 2 3 2 3 1 3 2 3 1 2 3 1 3 1 3 1 2 3 2 1 3 1 2 3 2 3 2 3 1 3 2 1 3 2 3 2 1 3 1 2 3 1 2 1 2 1 2 3 2 1 2 3 2 1 2 1 2 3 2 1 2 1 3 1 2 1 2 1...
output:
-1193800
result:
ok single line: '-1193800'
Test #21:
score: 0
Accepted
time: 156ms
memory: 24372kb
input:
150 10 9220 3 4 1 3 4 1 4 1 3 2 3 2 1 2 3 4 2 4 2 4 3 4 2 4 2 1 4 2 4 1 2 3 4 2 4 3 1 3 4 3 4 1 3 4 3 1 2 4 2 1 4 1 4 1 2 4 3 1 2 4 1 2 3 4 2 4 2 4 1 2 4 2 4 1 3 2 3 2 1 2 3 4 1 3 1 3 2 1 4 3 1 4 2 4 2 1 2 1 3 1 4 1 4 3 1 4 1 2 4 2 1 4 2 4 3 2 4 1 2 4 3 2 4 3 4 2 1 2 4 3 2 1 3 4 3 4 2 4 2 3 4 2 3 1 ...
output:
-1051080
result:
ok single line: '-1051080'
Test #22:
score: 0
Accepted
time: 157ms
memory: 24412kb
input:
150 10 777451 2 5 4 5 3 2 4 5 1 3 1 3 4 5 1 4 2 3 1 3 2 4 5 1 3 1 4 5 2 3 5 3 2 4 3 4 2 1 5 4 3 2 1 5 3 1 4 2 4 5 1 4 3 2 4 3 1 2 3 1 2 5 4 3 5 2 3 5 1 3 5 4 3 5 4 1 4 1 3 4 3 4 2 1 5 3 2 5 3 1 2 5 2 5 4 5 2 5 3 4 5 2 5 2 3 2 5 3 4 1 4 2 5 2 5 4 2 3 2 5 2 3 5 4 2 1 3 1 4 2 3 2 5 1 2 5 2 4 2 3 5 1 5 ...
output:
-166374514
result:
ok single line: '-166374514'
Test #23:
score: 0
Accepted
time: 151ms
memory: 24428kb
input:
150 10 506806 2 6 5 6 3 1 5 4 2 3 1 4 5 6 1 6 1 6 1 4 2 1 6 5 4 5 4 1 4 3 2 1 4 1 5 2 6 5 2 5 6 5 6 1 3 1 4 1 3 5 2 3 4 1 2 3 1 6 3 2 3 4 6 5 1 4 2 4 6 3 4 3 6 3 1 2 1 2 6 2 5 4 1 4 5 3 6 2 1 5 6 2 3 4 1 3 1 3 5 6 2 1 3 2 5 1 5 1 6 4 5 1 4 2 1 3 2 3 4 3 5 4 1 3 1 2 1 2 5 3 5 1 4 1 4 5 4 1 2 5 2 1 4 ...
output:
-97306752
result:
ok single line: '-97306752'
Test #24:
score: 0
Accepted
time: 152ms
memory: 24488kb
input:
150 10 30952 1 2 6 1 6 4 1 7 2 5 2 6 2 3 1 2 7 4 3 4 1 4 5 3 6 2 5 6 5 7 2 7 5 4 6 1 2 1 3 2 1 6 3 4 1 5 7 4 2 6 3 7 3 1 6 2 7 1 5 1 5 2 3 6 1 3 4 6 4 3 1 6 5 2 1 4 3 7 2 6 1 4 3 4 6 1 6 5 1 6 4 1 3 5 3 7 5 6 7 5 7 3 4 7 3 2 5 2 6 3 7 6 3 2 4 6 5 6 5 6 1 5 1 4 1 5 1 7 5 2 7 6 2 5 3 1 5 1 5 3 4 2 1 4...
output:
-7118960
result:
ok single line: '-7118960'
Test #25:
score: 0
Accepted
time: 1ms
memory: 5752kb
input:
5 7 600 2 3 2 3 2 5 6 6 6 4 1000 900 800 400 200 50
output:
1250
result:
ok single line: '1250'
Test #26:
score: 0
Accepted
time: 150ms
memory: 24336kb
input:
150 10 933510 6 1 4 2 6 5 4 8 2 5 8 7 4 7 2 7 5 3 7 1 8 7 2 7 1 8 4 3 4 8 6 1 6 2 4 7 3 4 3 7 2 4 1 4 7 1 8 3 5 4 3 6 1 5 6 1 3 1 8 5 2 3 6 5 3 5 6 5 1 5 2 8 7 5 6 3 6 1 3 5 7 6 8 7 6 3 1 5 1 2 3 4 5 6 8 3 4 6 2 8 4 8 3 8 1 7 6 4 6 1 2 1 3 2 8 6 5 8 1 7 6 3 4 1 6 3 4 2 1 7 6 8 7 3 8 4 7 8 6 3 4 5 8 ...
output:
-237111540
result:
ok single line: '-237111540'
Test #27:
score: -100
Wrong Answer
time: 125ms
memory: 24396kb
input:
150 10 559439 102 55 121 23 37 91 88 31 8 33 19 63 61 99 53 117 58 17 9 42 25 123 80 19 47 10 143 85 125 24 44 55 18 136 44 37 26 71 76 26 149 11 126 97 140 67 147 121 106 123 59 49 130 14 114 132 41 112 23 97 145 122 95 146 27 68 76 17 105 150 33 120 48 37 113 81 21 86 109 53 142 131 3 117 128 144 ...
output:
-281661435
result:
wrong answer 1st lines differ - expected: '-281406698', found: '-281661435'