codeforces好题记录——2B
来源:互联网 发布:最新微信家校通源码 编辑:程序博客网 时间:2024/05/16 09:50
题目见http://codeforces.com/problemset/problem/2/B
给定一个正方形数组,只能向下或向右移动,求从左上移动到右下,在这个路径上的所有数字的乘积末尾的0最少。
考虑到要使乘积末尾有0,则路径上必须有10,或者有2和5,有几个10末尾就有几个0
这里是一个求最优的问题,考虑用dp来做,要求就是路径上2和5的个数中的最小值最小!!!但是这样直接dp是不好做的,这时大神的智慧就发挥了,我却怎么也没想到,我们可以对“2最少”这个条件和“5最少”这个条件分别dp一次。这样“2最少”找出的路径中5的个数一定大于“5最少”的路径中5的个数的,所以
min(2, 5) = min(min(2), min(5))
d(i, j)表示终点为(i, j)时最小的2或5的个数
F(k)表示k分解因数中2或5的个数
v(i, j)表示原本的值
d(i, j) = F(v(i, j)) + min(d(i - 1, j), d(i, j - 1))
要注意考虑边界情况
0 0
- codeforces好题记录——2B
- codeforces好题记录——3D
- codeforces好题记录——4D
- Codeforces Round #430 (Div. 2) C+D补题记录
- # 刷题记录——9.30
- # 刷题记录——9.29
- java——笔试题记录
- 算法题记录2
- leetcode 做题记录2
- 笔试面试题记录(0x01) —— #define
- leetcode刷题记录——383.ransom Note
- LeetCode 456. 132 Pattern——LeetCode刷题记录
- 面试题记录第一节——(activity、fragment)
- 面试题记录第二节——(service、Broadcast)
- 面试题记录第二节——(Binder)
- 面试题记录第五节——Asynctask
- 面试题记录第七节——(事件分发)
- OI成长之路——做题记录
- 别的程序员怎么阅读你的简历
- Caused by: org.hibernate.MappingException: Could not determine type for: org.cgh.ssh.pojo.GoodsType,
- ubuntu 12.04 arm-linux-gcc
- 1017. Queueing at Bank
- C++学习札记20140315
- codeforces好题记录——2B
- Qt之ignore()和accept()
- 2014ACM集训13级PK赛4-Second-price Auction
- codeforces好题记录——3D
- Makefile 中:= ?= += =的区别
- codeforces好题记录——4D
- 左旋字符串——编程珠玑和STL所想到的
- 位运算的巧妙运用
- 返回连续子序列,使得和最大(变形)