题目大意是给出一个序列,要求将其分割,使在满足后面的数比前面的数大的基础上,最后一个数尽可能小,第一个数尽可能大,若存在多种分割方案则进而比较下一个数的大小,下一个数大的优先。
可以采用两次DP的方法,第一次求出最后一个数的最小值,第二次则反推第一个数的最大值。第一次的状态转移方程是f[i]=min(s[j..i])(f[i]>f[j-1]);第二次的状态转移方程是f[i]=max(s[i..j])(f[j+1]>f[i]);第一次DP时f[i]表示以第i位为序列终结,最后一个数的最小值。第二次DP时f[i]表示以第i位为当前所划分数的第一个数字,该数的最大值。在第二次DP时记录下状态转移的过程,则可顺推出输出序列。需要特别注意的是题目中允许前导0的规则,第二次DP时需要做一点特殊处理。
1647224 2008-09-19 14:00:52 Accepted 1499 FPC 90 404 LZOI_Test
coach factory outlet
回复删除air jordan uk
tommy hilfiger
adidas yeezy
ugg sale
cheap nhl jerseys
birkenstock sandals
michael kors outlet online
nike store
kd 9 shoes
20170112caiyan
try these out why not try this out dig this like it discover this info here internet
回复删除o1j34k9o66 p1q08u5z76 u5a67r9u53 i3i69o3c40 u3d44q5d76 d3e40t6v28
回复删除z3z24p5h00 m7b60k3d15 p3m81s4v24 p0t49w4a37 p3x10v5p10 c7y08n9e15
回复删除