波动数列,dp,组合数

题目

#include<iostream>
using namespace std;
const   int N=1010;
int dp[N][N];
const   int mod=1e8+7; 
int n,s,a,b; int get_mod(int x)
{
   
    return (x%n+n)%n;
}
int main()
{
   
    cin>>n>>s>>a>>b;
    dp[0][0]=1;
    for(int i=1;i<=n-1;i++)
    for(int j=0;j<=n-1;j++)
    dp[i][j]=(dp[i-1][get_mod(j-a*i)]+dp[i-1][get_mod(j+b*i)])%mod;
    printf("%d\n",dp[n-1][get_mod(s)]);
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 14:23
steelhead:你回的有问题,让人感觉你就是来学习的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务