POJ 1837
来源:互联网 发布:田径跑道数据 编辑:程序博客网 时间:2024/05/19 23:18
一开始还是被这题吓倒了。想想如果是dfs的话,应该是20^20的复杂度了。
后来从状态入手,发现,已知一个状态,在此基础上多挂一个物体得到的新状态,只与原状态的平衡度有关,与上面挂的什么无关。因此得到了方程。
dp[i][j] 表示在挂满前i个物体的时,平衡度为j的挂法的数量。j为正表示右面重。最极端的情况是所有物体都挂在最远端,因此平衡度最大值为15*20*25=7500。原则上就应该有dp[ 0..20 ][-7500 .. 7500 ]。因此做一个处理,使得数组开为 dp[0.. 20][0..15000]。
现在说这个方程。dp[i][j]=sigma( dp[i-1][ j-c[k]*w[i] ] ), k=1~C, j=0~15000, i=1~20。初始状态 dp[0][7500]=1 表示不用物体时,平衡度为0有一种挂法,当然那就是什么都不挂
复杂度O(C*G*15000)完全是可以接受的
0ms
- POJ 1837
- POJ 1837
- poj 1837
- poj 1837
- POJ 1837
- poj 1837
- POJ 1837
- poj.1837
- poj 1837
- poj-1837
- poj 1837
- POJ 1837
- POJ 1837
- poj 1837
- poj 1837
- POJ 1837
- poj-1837
- POJ 1837
- 学习好辛苦哦
- 2009年CRM市场总结分析(实话实说版)
- JVM调优总结(七)-典型配置举例1
- typedef的用法
- u-boot官方FTP下载
- POJ 1837
- 关于windows7下安装vs2008Team正式版
- SqlParameter--研究一下,对SqlParameter进行封装操作
- shp文件转换到CAD dwg,dxf
- 会走路的梦
- 工作一周啦
- POST
- 让gedit成为强大的C语言IDE
- skyeye在ubuntu上的安装