| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
二维,不需要记录路径In Reply To:我用的三维dp,感觉贪心要简单点,dp不太好记路径,大家是怎样dp的?也是三维? Posted by:xiaolonghingis at 2006-08-14 22:52:42 先算出各个数字出现的次数
不妨假设最后一位是0(是5的情况同样处理)
去掉这个0后,求用剩下的数字组成模3余0的最大数,实际上就是求一个组合,
使得所有数的和模3余0,组合里的数越多越好,大的数越多越好.
设f[i][j]表示只取0,1,...,i中的数且和模3余j的最优选法(就是选得最多)
显然f[0][0] = count[0], f[0][1] = -INF, f[0][2] = -INF;
f[i][j] = Max{f[i-1][(j-k*i)%3] + k}, k = 0,1,...,count[i]
f[9][0]是除去最后一位后的最大长度.
求出了f[][],就可以倒推出9最多多少个,8最多多少个
然后按从大到小输出,跟上一个0
末位是5的情况同上,求f[9][1]即可
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator