题目背景
建筑大师最近在跟着数学大师 ljt12138 学数学,今天他学了等差数列,ljt12138 决定给他留一道练习题。
题目描述
ljt12138 首先建了 nn 个特斯拉电磁塔,这些电塔排成一排,从左到右依次标号为 11 到 nn ,第 ii 个电塔的高度为 h[i]h[i] 。
建筑大师需要从中选出一些电塔,然后这些电塔就会缩到地下去。这时候,如果留在地上的电塔的高度,从左向右构成了一个等差数列,那么这个选择方案就会被认为是美观的。
建筑大师需要求出,一共有多少种美观的选择方案,答案模 998244353998244353 。
注意,如果地上只留了一个或者两个电塔,那么这种方案也是美观的。地上没有电塔的方案被认为是不美观的。
同时也要注意,等差数列的公差也可以为负数。
输入格式
第一行一个正整数 nn 。
第二行 nn 个非负整数,第 ii 个整数是第 ii 个电塔的高度 h[i]h[i] 。
输出格式
输出一个整数,表示美观的方案数模 998244353998244353 的值。
输入输出样例
输入
8
13 14 6 20 27 34 34 41
输出
50
题解:
这是一道dp题。首先很容易想到可以用dp[i][j]表示以第i个为结尾构成公差为j的等差数列的方案数。
状态转移方程为dp[i][k]+=dp[j][k]+1
k表示公差。因为i,j已知就可以表示出k即k=a[i]-a[j]
因为存在负数且v的最大是20000所以可以整体右移20000
所以就是dp[i][a[i]-a[j]+20000]+=dp[j][a[i]-a[