斗地主(牛客)
很明显的一个dp
dp[i][j]表示打了前i张牌模数为j的方案数
转移方程:
dp[i][(j+a[x])%k]=dp[i][(j+a[x])%k]+dp[i-1][j];
初始状态dp[0][0]=1;
#include
using namespace std;
#define lowbit(x) x&(-x)
#define ll long long
const int mod=1e9+7;
int a[55];
ll dp[105][55];
int main(){
int n,m,k;
cin>>n>>m>>k;
for(int i=1;i<=m;i++)cin>>a[i];
dp[0][0]=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
for(int z=0;z