AcWing 1214. 波动数列
原题链接
中等
作者:
海里长蘑菇
,
2024-04-08 20:52:13
,
所有人可见
,
阅读 1
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
const int N = 1020,mod = 100000007;
int n,s,a,b;
int f[N][N];
int get_mod(int a,int b) //函数前面一定要加 int
{
return (a%b+b)%b; //余数变成正的
}
int main()
{
cin>>n>>s>>a>>b;
f[0][0] = 1;
for(int i = 1 ; i < n ; i++) //for(int i = 0 ; i < n ; i++)
{
for(int j = 0 ; j < n ; j ++)
{
f[i][j] = (f[i-1][get_mod(j-(n-i)*a,n)] + f[i-1][get_mod(j+(n-i)*b,n)])%mod;
}
}
cout<<f[n-1][get_mod(s,n)] ; //cout<<f[n-1][s%n]; 这里也要正的才行
return 0 ;
}