CF 2B.The least round way
很久以前就见过此题,以前看了题解,然后今天写了写,写的真搓。
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
int dp2[][];
int dp5[][];
int p2[][];
int p5[][];
int p[][];
int que[];
int x,y,n,num = ;
void f1()
{
int a,b;
a = b = n;
while()
{
if(a > &&dp2[a][b] == dp2[a-][b] + p2[a][b])
{
que[num++] = ;
a --;
}
else if(dp2[a][b] == dp2[a][b-] + p2[a][b])
{
que[num++] = ;
b --;
}
if(a == &&b == ) break;
} }
void f2()
{
int a,b;
a = b = n;
while()
{
if(a > &&dp5[a][b] == dp5[a-][b] + p5[a][b])
{
que[num++] = ;
a --;
}
else if(dp5[a][b] == dp5[a][b-] + p5[a][b])
{
que[num++] = ;
b --;
}
if(a == &&b == ) break;
}
}
void f3()
{
int a,b;
a = b = n;
while()
{
if(a > x)
{
que[num++] = ;
a --;
}
else if(b > y)
{
que[num++] = ;
b --;
}
if(a == x&&b == y) break;
}
while()
{
if(a > )
{
que[num++] = ;
a --;
}
else if(b > )
{
que[num++] = ;
b --;
}
if(a == &&b == ) break;
}
}
int main()
{
int i,j,temp,flag;
scanf("%d",&n);
flag = ;
for(i = ;i <= n;i ++)
{
for(j = ;j <= n;j ++)
{
scanf("%d",&p[i][j]);
if(p[i][j] == )
{
flag = ;
x = i;
y = j;
continue;
}
temp = p[i][j];
while(temp% == )
{
p2[i][j] ++;
temp /= ;
}
while(temp% == )
{
p5[i][j] ++;
temp /= ;
}
}
}
for(j = ;j <= n;j ++)
{
dp2[][j] = dp2[][j-] + p2[][j];
dp5[][j] = dp5[][j-] + p5[][j];
}
for(i = ;i <= n;i ++)
{
dp2[i][] = dp2[i-][] + p2[i][];
dp5[i][] = dp5[i-][] + p5[i][];
}
for(i = ;i <= n;i ++)
{
for(j = ;j <= n;j ++)
{
dp2[i][j] = min(dp2[i-][j],dp2[i][j-]) + p2[i][j];
dp5[i][j] = min(dp5[i-][j],dp5[i][j-]) + p5[i][j];
}
}
if(flag == )
{
printf("%d\n",min(dp2[n][n],dp5[n][n]));
if(dp2[n][n] < dp5[n][n])
f1();
else
f2();
}
else
{
printf("%d\n",min(,min(dp2[n][n],dp5[n][n])));
if(min(dp2[n][n],dp5[n][n]) >= )
f3();
else if(dp2[n][n] < dp5[n][n])
f1();
else
f2();
}
for(i = num-;i >= ;i --)
{
if(que[i] == )
printf("D");
else
printf("R");
}
printf("\n");
return ;
}
CF 2B.The least round way的更多相关文章
- CF 2B The least round way DP+Math
题意: 找出一条路, 使每个节点相乘,得到的数末尾 0 最少 每次移动只能向右或者向下, 找到后打印路径 ///按照题目要求,就是找出一条从左上角到右下角中每个数含2 or 5 最少的路 ///可以用 ...
- [cf contest 893(edu round 33)] F - Subtree Minimum Query
[cf contest 893(edu round 33)] F - Subtree Minimum Query time limit per test 6 seconds memory limit ...
- Codeforces #2B The least round way(DP)
Description 有一个n*n的正整数矩阵,要你求一条从第一行第一列的格子到第n行第n列的路,使得你走过的格子里面的数乘起来的值末尾的零的个数最小.输出最小个数. Input 第一行包括1个数n ...
- Codeforces 2B. The least round way
There is a square matrix n × n, consisting of non-negative integer numbers. You should find such a w ...
- codeforces 2B The least round way(DP+数学)
The least round way 题目链接:http://codeforces.com/contest/2/problem/B ——每天在线,欢迎留言谈论.PS.本题有什么想法.建议.疑问 欢迎 ...
- codeforces 2B The least round way 【DP】
VJ上可找到中文题意. 思路: 首先分解有多少2与多少5.接下来就是dp. 分两次,一次是根据2的数量贪心,另外一次是根据5的数量贪心,看哪一次乘积的末尾0最少. 需要注意的是两点: 1.输入有0的情 ...
- 最小较小codeforces 2B The least round way
查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记载吧! 求从左上角到右下角所经过的数字之积末端所含0最小的个数 终究的积可以当作A*2^x*5^y, ...
- 【CF】7 Beta Round D. Palindrome Degree
manacher+dp.其实理解manacher就可以解了,大水题,dp就是dp[i]=dp[i>>1]+1如何满足k-palindrome条件. /* 7D */ #include &l ...
- cf B George and Round
题意:输入n,m,下一行为n个数a1<a2<a3......<an:然后再输入m个数b1<=b2<=b3<.....<=bm: 每个ai都必须在b中找到相等的 ...
随机推荐
- penghui_031413 Bat命令学习
penghui_031413 Bat命令学习 基础部分:====================================================================== ...
- [LeetCode] Pow(x, n)
Implement pow(x, n). 有史以来做过最简单的一题,大概用5分钟ac,我采用fast exponential,这个在sicp的第一章就有描述.思想是:如果n是偶数的话,那么m^n = ...
- [Java][Weblogic] weblogic.net.http.SOAPHttpsURLConnection incompatible with javax.net.ssl.HttpsURLConnection解决办法
更新20141120: 我始终对修改生产上weblogic上的配置文件这一方法心存担忧(生产上的服务器不允许随便修改,可能会影响到其他应用),所以想使用代码的方式解决此问题,在对方法一失败原因进行了进 ...
- 全零网络IP地址0.0.0.0表示意义详谈
转自:http://liuzhigong.blog.163.com/blog/static/17827237520114207278610/ RFC: 0.0.0.0/8 - Addresses in ...
- ASSM 的三级位图结构
自动段空间管理(ASSM),它首次出现在Oracle920里(在920以前,段空间的管理方式叫做MSSM,它是由连接列表freelist来完成的,因为freelist存在串行的问题,因此容易引起段头的 ...
- JNI数据类型(转)
本文原创,转载请注明出处:http://blog.csdn.net/qinjuning 在Java存在两种数据类型: 基本类型 和 引用类型 ,大家都懂的 . 在JNI的世界里也存在类似的数据类型,与 ...
- JSON语法简介 介绍 json
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),类似 XML,但比 XML 更小.更快,更易解析. 实例 { "employees ...
- hdu1963 完全背包(数据压缩)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1963 注意:题中有一句话说债券的价钱都是1000的倍数,我之前没看到这句话,写的完全背包, ...
- 8659 Mine Sweeping
时间限制:500MS 内存限制:65535K提交次数:37 通过次数:15 题型: 编程题 语言: G++;GCC Description The opening ceremony of the ...
- linux系统下本地搭建git服务器
linux系统下如何搭建本地git服务器,用于存放团队的开发代码,如下步骤: 1.先用一台服务器来安装git,安装好linux以后,在这里选用的是Ubuntu 14.04.然后配置静态IP:172.1 ...