广东网络seo推广,深圳网站关键词优化公司哪家好,河南省住房与城乡建设厅网站首页,公司 备案 网站名称题目 CF2B The least round way 做法 后面\(0\)的个数#xff0c;\(2\)和\(5\)是\(10\)分解质因数 则把方格中的每个数分解成\(2\)和\(5\)#xff0c;对\(2\)和\(5\)求两边动规#xff0c;得出最小值\(ansmin(num_2,num_5)\) 我们贪心地选择最小值所对应的\(2\)或\(5\)…题目 CF2B The least round way 做法 后面\(0\)的个数\(2\)和\(5\)是\(10\)分解质因数 则把方格中的每个数分解成\(2\)和\(5\)对\(2\)和\(5\)求两边动规得出最小值\(ansmin(num_2,num_5)\) 我们贪心地选择最小值所对应的\(2\)或\(5\)然后从\((n,n)\)按动规路径返回 Code #includebits/stdc.h
typedef int LL;
const LL maxn1e39;
inline LL Read(){LL x(0),f(1); char cgetchar();while(c0 || c9){if(c-) f-1; cgetchar();}while(c0 c9){x(x3)(x1)c-0; cgetchar();}return x*f;
}
LL n,m,ax,ay,flag;
LL p[2][maxn][maxn],dp[2][maxn][maxn],a[maxn][maxn];
void Solve(LL x,LL y,LL op){if(x1 y1) ;else if(x1){Solve(x,y-1,op); printf(R);}else if(y1){Solve(x-1,y,op); printf(D);}else{if(dp[op][x][y-1]dp[op][x][y]-p[op][x][y]) Solve(x,y-1,op),printf(R);else Solve(x-1,y,op),printf(D);}
}
int main(){nmRead();for(LL i1;in;i)for(LL j1;jm;j){a[i][j]Read();if(!a[i][j]){axi; ayj;flagtrue;}while(a[i][j]%20 a[i][j]){p[0][i][j]; a[i][j]/2;}while(a[i][j]%50 a[i][j]){p[1][i][j]; a[i][j]/5;}}for(LL i1;in;i)for(LL j1;jm;j){if(i1 j1){dp[0][i][j]p[0][i][j];dp[1][i][j]p[1][i][j];}else{if(i1){dp[0][i][j]dp[0][i][j-1]p[0][i][j];dp[1][i][j]dp[1][i][j-1]p[1][i][j];}else if(j1){dp[0][i][j]dp[0][i-1][j]p[0][i][j];dp[1][i][j]dp[1][i-1][j]p[1][i][j];}else{dp[0][i][j]std::min(dp[0][i-1][j],dp[0][i][j-1])p[0][i][j];dp[1][i][j]std::min(dp[1][i-1][j],dp[1][i][j-1])p[1][i][j];}}}LL ans(std::min(dp[0][n][m],dp[1][n][m]));if(ans1 flag){puts(1);for(LL i1;iax;i) printf(D);for(LL i1;iay;i) printf(R);for(LL iax;in;i) printf(D);for(LL iay;im;i) printf(R);return 0;}printf(%d\n,ans);if(ansdp[0][n][m]){Solve(n,m,0);}else{Solve(n,m,1);}return 0;
} 转载于:https://www.cnblogs.com/y2823774827y/p/10966316.html