链接:httpsacnowcodercomacmcontest57356J来源:牛客网You are right but Smoke God is a brand new open-world adventure game independently developed by Ding Zhenzhen The game takes place in a fantasy world called
#include
using namespace std;
const int MOD = 998244353;
int main() { int n, m, p; cin >> n >> m >> p;
vector<int> A(m+n-1), B(m+n-1), C(n), D(m);
for (int i = 0; i < m+n-1; i++) {
cin >> A[i];
}
for (int i = 0; i < m+n-1; i++) {
cin >> B[i];
}
for (int i = 0; i < n; i++) {
cin >> C[i];
}
for (int i = 0; i < m; i++) {
cin >> D[i];
}
vector<vector<int>> dp(n+1, vector<int>(m+1));
dp[0][0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
int add = (dp[i-1][j-1] * p) % MOD;
int stay = (dp[i-1][j] * (1-p)) % MOD;
dp[i][j] = (add + stay) % MOD;
}
}
vector<long long> ans(n);
for (int i = 0; i < n; i++) {
for (int j = 0; j <= m; j++) {
long long damage = ((long long)D[j] * dp[i][j]) % MOD;
ans[i] = (ans[i] + damage) % MOD;
}
}
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
int increase = (C[j] - C[i] + MOD) % MOD;
int damage = (ans[i] * A[increase-1]) % MOD;
ans[j] = (ans[j] + damage) % MOD;
}
}
for (int i = 0; i < n; i++) {
cout << ans[i] << " ";
}
return 0;
原文地址: https://www.cveoy.top/t/topic/iePY 著作权归作者所有。请勿转载和采集!