题目:1214. 波动数列
思路:大佬的思路
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1e5+10;
const int mod=100000007;
int n,s,a,b;
LL f[1010][1010];
int solve(int x,int y){
return (x%y+y)%y;
}
int main(){
cin>>n>>s>>a>>b;
f[0][0]=1;
for(int i=1;i<=n-1;i++){
for(int j=0;j<n;j++){
f[i][j]=(f[i-1][solve(j-(n-i)*a,n)]+f[i-1][solve(j+(n-i)*b,n)])%mod;
}
}
printf("%lld",f[n-1][solve(s,n)]);
return 0;
}