|
) { x/=5; cnt2++; } mp[i][j][0]=cnt1; mp[i][j][1]=cnt2; } } CLEAR(dp,INF); dp[1][1][0]=mp[1][1][0]; dp[1][1][1]=mp[1][1][1]; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { for(int k=0;k<2;k++)//0:2 1:5 { if(i>1&&dp[i][j][k]>dp[i-1][j][k]+mp[i][j][k]) { dp[i][j][k]=dp[i-1][j][k]+mp[i][j][k]; if(!k) { path1[i][j][0]=i-1; path1[i][j][1]=j; } else { path2[i][j][0]=i-1; path2[i][j][1]=j; } } if(j>1&&dp[i][j][k]>dp[i][j-1][k]+mp[i][j][k]) { dp[i][j][k]=dp[i][j-1][k]+mp[i][j][k]; if(!k) { path1[i][j][0]=i; path1[i][j][1]=j-1; } else { path2[i][j][0]=i; path2[i][j][1]=j-1; } } } } } ans=min(dp[n][n][0],dp[n][n][1]); if(ans>=1&&!flag) { printf("%d\n",1); for(int i=0;i
?
|