帝都Day4(1)——还是dp

 其实是day4

一、洛谷P1018 乘积最大

f[i][j]表示前i个数 切成j块 用f[i][j]而不用f[i][j][k](i到j切成k块)呢?

Luogu1043

前缀和(好算一段里的数的和)+一堆预处理

传进来一个指针(其实指针和数组名差不多,C++的玄学特性),然后处理这个数组

洛谷1063 能量项链

f[i][j]把i-j里的珠子合并起来的最大能量

枚举i<k<j的k:最后和i。j合并的珠子

有点像树形dp

洛谷1077 摆花

可以用前缀和优化

ij 第i种 第j盆,最大值

洛谷1103

树形DP:

luogu 1472 奶牛家谱

洛谷P1122 最大子段和

洛谷P2014 选课

(多个子树,从左到右合成)//为啥不多叉树转二叉呢?

 状压DP:

位运算:(位运算竟然是我的最爱?)

Cpp的位运算,把数字化成二进制来算,略

与运算【&】或运算【|】非运算【!】异或【^】

乘以二运算【<<】除以二运算【>>】

玉米田(洛谷1879)

可以用行来划分状态,一次决定一行在哪里种草,用上一行决定这一行

由于每个地方种草1或不种草0,把一行看成一个数,每一个方格是一个位置

判断冲突用与运算 ,a&b==0,如果a&b不是0那就冲突

判断自身是否行不行:(a&(a<<1)==0&&a&(a>>1)==0)

互不侵犯luogu1896

原文地址:https://www.cnblogs.com/oier/p/7198650.html