DP一直都是一个让人头皮发麻的算法,让人望而止步。
它并不像图论一样,知道了具体的算法和一定的知识储备就能很轻松的写出来。
而DP问题是一种很抽象的算法,它并没有具体的模板,所以并不好想。
我以前也一直在逃避DP,只要看到DP问题就会退缩,心里一直在告诉自己,先学会其他的,DP先放一放,等以后再学,但是遇到越来越多的题,看到过太多用太多DP解决的问题,每次遇到都放弃。
让我下定决心写DP还是在一次Div2中,一个C题,最后一共只过了两千人,当时看到那个题,一直以为是一个贪心问题,但是当把代码写完提交上去以后才发现,我的贪心有问题,直到比赛结束,我看了标签,才知道这是一个DP题,看到我的队友很轻松切出了这一道题,让我懂得了DP的重要性。
今天看了一天的DP,翻了很多博客,看到了很多大佬的博客。
我把感觉好的博客放在下面:
大佬博客
看了大佬的博客,我又自己找了好几个题写了一下,发现DP并不是能么的可怕,DP最主要的就是转移方程式,一般刚开始学DP的人都不能看出转移方程式是什么,但是我总感觉肯定有什么方法,可以推出转移方程式。
DP主要就是用一个一个的小问题,最后组成一个大问题,如果你看到一个题,知道是一个DP问题以后,并不用急着求转移方程式,你可以试着一步一步的推。
dp[1][1]=...;
dp[1][2]=...;
dp[1][3]=...;
dp[2][1]=...;
dp[2][2]=...;
dp[2][3]=...;
dp[3][1]=...;
dp[3][2]=...;
.
.
.
就像这样自己写一些,你会发现,等你写几个以后,你就会发现规律,当然这个规律其实就是所谓的转移方程式。
希望我的内容有帮到你。