QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#767092 | #8049. Equal Sums | ywli08 | WA | 1ms | 3724kb | C++14 | 1.5kb | 2024-11-20 19:49:06 | 2024-11-20 19:49:06 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 5e2+5;
const ll mod = 998244353;
int n, m;
int la[maxn], ra[maxn];
int lb[maxn], rb[maxn];
int dp[maxn][maxn][2 * maxn];
const int ofst = 501;
int main(){
cin >> n >> m;
for(int i = 1;i <= n;i++){
cin >> la[i] >> ra[i];
}
for(int i = 1;i <= m;i++){
cin >> lb[i] >> rb[i];
}
// if(n < m) swap(n, m), swap(la, lb), swap(ra, rb);
dp[0][0][ofst] = 1;
dp[0][0][ofst + 1] = -1;
for(int i = 0;i <= n;i++){
for(int j = 0;j <= m;j++){
for(int k = -500;k <= 500;k++){
dp[i][j][k + ofst] = dp[i][j][k + ofst - 1] + dp[i][j][k + ofst];
if(dp[i][j][k+ofst] == 0) continue;
if(k < 0){
dp[i + 1][j][k + la[i + 1] + ofst] = (dp[i + 1][j][k + la[i + 1] + ofst] + dp[i][j][k + ofst]) % mod;
dp[i + 1][j][k + ra[i + 1] + ofst + 1] = (dp[i + 1][j][k + ra[i + 1] + ofst + 1] - dp[i][j][k + ofst] + mod) % mod;
}
else{
dp[i][j + 1][k - rb[j + 1] + ofst] = (dp[i][j + 1][k - rb[j + 1] + ofst] + dp[i][j][k + ofst]) % mod;
dp[i][j + 1][k - lb[j + 1] + ofst + 1] = (dp[i][j + 1][k - lb[j + 1] + ofst + 1] - dp[i][j][k + ofst] + mod) % mod;
}
}
}
}
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
cout << dp[i][j][ofst] << ' ';
}
cout << endl;
}
}
详细
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 3724kb
input:
2 3 1 2 2 3 1 4 2 2 1 3
output:
2 1996488706 0 3 4 -301989880
result:
wrong answer 2nd numbers differ - expected: '0', found: '1996488706'