Luogu4933 大师

比较水的DP qwq

一开始想枚举公差\(d\), 后来发现直接暴力统计初始化都不用qwq

\(CODE:\)

#include<iostream>
#include<cstdio>
#define ll long long
#define maxn 1001
#define maxm 40001
#define z 20000
using namespace std;
ll f[maxn][maxm];
ll ans;
int c[maxm];
int h[maxn];
int qr(){
	int f=1, x=0;
	char ch=getchar();
	for(;!isdigit(ch); ch=getchar()) if(ch=='-') f=-1;
	for(; isdigit(ch); ch=getchar()) x=x*10+ch-48;
	return x*f;
}
int main(){
	int n;
	n=qr();
	for(int i=1; i<=n; i++)
		h[i]=qr();
	for(int i=1; i<=n; i++){
		ans++;//单个的情况
		for(int j=1; j<i; j++){
			f[i][h[i]-h[j]+z]+=f[j][h[i]-h[j]+z]+1;
			f[i][h[i]-h[j]+z]%=998244353;
			ans+=f[j][h[i]-h[j]+z]+1;
			ans%=998244353;
		}
	}
	printf("%lld", ans);
	return 0;
}
posted @ 2018-10-24 17:32  PushinL  阅读(113)  评论(0编辑  收藏  举报