多少个0

来源:互联网 发布:深圳unity3d培训 编辑:程序博客网 时间:2024/06/09 18:59

数塔变形




#include<iostream>#include<cstring>#include<cmath>using namespace std;int map[110][110];int dp1[110][110];int dp2[110][110];int n;int main(){while(cin>>n){int i,j;for(i=1;i<=n;i++)for(j=1;j<=n;j++)cin>>map[i][j];memset(dp1,0,sizeof(dp1));memset(dp2,0,sizeof(dp2));for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(map[i][j]==5)dp1[i][j]=max(dp1[i-1][j],dp1[i][j-1])+1;elsedp1[i][j]=max(dp1[i-1][j],dp1[i][j-1]);if(map[i][j]==2)dp2[i][j]=max(dp2[i-1][j],dp2[i][j-1])+1;elsedp2[i][j]=max(dp2[i-1][j],dp2[i][j-1]);}int a=max(dp1[n][n],dp2[n][n]);int ans;if(a>=n)ans=2*n-1-a;elseans=a;cout<<ans<<endl;}return 0;}




0 0
原创粉丝点击