今天讲了动态规划。非常重要的一个点。
刚开始不太明白,然后后来看了看网上的01背包问题。看到一篇帖子写的不错。
http://blog.csdn.net/mu399/article/details/7722810
我只能说我是看懂了01背包的问题,别的话,真的需要训练。
大概描述一下把。有一些物品,以i属于[1,n]编号,他们的价值分别是Pi,重量是Wi。背包容纳的最大重量是m;
怎么样才能保证这个包装的价值最大。
用动态规划这么来做。
设一个函数,c(i,m),表示选了前i个物品的时候,放出的最大价值。
那么,c(i,m) = max{ c(i-1,m-Wi)+Pi, c(i-1,m) } 我觉得这个理解障碍最大就在于,他们写的都是放了,,其实真的只是选了
对于第i个物品,他或者放(如果放得下的话),或者不放,因此得出上面的式子
其他的点的话,参考那些图什么的,就能看懂了~
然后做了几个水题,,最近没有什么激情。。今天和zsh聊了聊。明白了一些事情。然后,别的没有什么。今天还看了看深搜,,
大概这也是个神奇,困难的东西吧,加油加油~~