输出0求助呜呜呜QWQ
  • 板块学术版
  • 楼主Ice_Kissღ
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/11/5 20:37
  • 上次更新2023/11/5 08:53:41
查看原帖
输出0求助呜呜呜QWQ
307416
Ice_Kissღ楼主2020/11/5 20:37
#include<bits/stdc++.h>
using namespace std;
const int M=1000000007;
int ans=0;
int n,m,k;
int a[805][805];
int dp[805][805][20][2];//坐标,谁,a-uim的能量差  ~~~共为多少的方案数 
//1~a,0~uim 
int main()
{
	scanf("%d%d%d",&n,&m,&k);
	k++;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			scanf("%d",&a[i][j]);
			dp[i][j][a[i][j]%k][1]=1;
			//cout<<dp[i][j][a[i][j]][1]<<" "; 
		}
	}
	 
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			for(int x=0;x<=k-1;x++)
			{
				dp[i][j][x][1]=(dp[i][j][x][1]+dp[i-1][j][(x-a[i][j]+k)%k][1])%M;
				dp[i][j][x][1]=(dp[i][j][x][1]+dp[i][j-1][(x-a[i][j]+k)%k][1])%M;
				dp[i][j][x][0]=(dp[i][j][x][0]+dp[i-1][j][(x+a[i][j])%k][0])%M;
				dp[i][j][x][0]=(dp[i][j][x][0]+dp[i][j-1][(x+a[i][j])%k][0])%M;
			}
		}
	}//cout<<endl;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			ans=(ans+dp[i][j][0][0])%M;
		}
		//cout<<endl;
	 } 
	printf("%d",ans);
	return 0;
}
2020/11/5 20:37
加载中...