51nod 1293 球与切换器

来源:互联网 发布:股市数据下载 编辑:程序博客网 时间:2024/05/22 14:39

DP

//#include<bits/stdc++.h>#include<stdio.h>#include<cstring>using namespace std;const int MAXN=1010;long long dp[MAXN][MAXN][2];int a[MAXN][MAXN];int main(){long long k,tmp;int n,m,i,j;while(~scanf("%d%d%lld",&m,&n,&k)){for(i=1;i<=n;i++)for(j=1;j<=m;j++)scanf("%d",&a[i][j]);memset(dp,0,sizeof(dp));dp[0][1][0]=k;for(i=1;i<=n;i++){for(j=1;j<=m;j++){tmp=dp[i-1][j][0]+dp[i][j-1][1];if(a[i][j]==1){dp[i][j][0]=tmp/2;dp[i][j][1]=tmp-tmp/2;}else if(a[i][j]==-1){dp[i][j][0]=tmp-tmp/2;dp[i][j][1]=tmp/2;}else if(a[i][j]==0){dp[i][j][0]=dp[i-1][j][0];dp[i][j][1]=dp[i][j-1][1];}}}printf("%lld\n",dp[n][m][0]);}}