P4933 大师 dp
作者:
多米尼克領主的致意
,
2024-05-24 14:37:48
,
所有人可见
,
阅读 3
这题内存限制500mb 开1010 * 2e4 不会超限 注意f 和 ans 都要取mod
code:
#include <bits/stdc++.h>
using namespace std;
const int N = 1010, M = 2e4 + 10, mod = 998244353;
typedef long long ll;
int f[N][M], p[N][M];
int a[N];
ll ans;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
for(int i = 1;i <= n;i++)cin >> a[i];
for(int i = 1;i <= n;i++){
for(int j = i - 1;j >= 1;j--){
int d = a[i] - a[j];
if(d >= 0)
f[i][d] = (f[i][d] + f[j][d] + 1) % mod;
else
p[i][-d] = (p[i][-d] + p[j][-d] + 1) % mod;
}
}
ans = n;
for(int i = 1;i <= n;i++){
for(int j = 0;j < M;j++){
ans = (ans + f[i][j]) % mod;
ans = (ans + p[i][j]) % mod;
}
}
cout << ans % mod;
return 0;
}