这三道题一块儿作,有一点心得吧。学习
愤怒的小鸟,一眼看上去是爆搜,可是实现起来有困难(我打了0分出来)。spa
还有一种解法是状压DP。设计
抛物线一共只有那么多条,咱们枚举抛物线(枚举两个点),这样就可以预处理出b[i][j]class
表示过点i,j的抛物线通过的点(状压)。搜索
而后写了个记忆化搜索,枚举每一个状态是经过哪一个抛物线转移而来(可能转移后比现状态通过的点要多,可是不影响答案正确性)比赛
那么就这样A了...co
论状态压缩的多种应用——篮球比赛2:数字
这题也是状压DP,可是DP的状态设计很NB:压缩
f[i][sta]表示前i我的拼出状态sta的方案数。枚举
而后不是枚举如何转移而来,而是从这个点向后转移,也就是所谓的刷表法。枚举当前状态下一我的的取值而后转移。
篮球比赛1:
f[i][j]表示前i我的 ^ 出数字j的方案数,日后转移。
g[i][j]表示后i我的 & 出数字j的方案数,日后转移。
真神了。。。
如何肯定一道题要状态压缩?不肯定...凭感受啊!题作多了就行了吧。
主要是学习了这种形式的状态的刷表法。
其余的大多数状压DP基本上都可以记忆化搜索,不用本身想DP顺序。
还有,DP有两种方式:第i个在决策中 和不必定在。
貌似大部分都是把第i个算做在,而后前缀和处理。
可是仍是要具体状况具体分析。