递推
迟来的总结。
错排公式\(f[i]=(i-1)\times(f[i-1]*f[i-2])\)
怎么推的呢?首先考虑\(f[i]\)表示i个数有的排列数,考虑加入一个i+1,它可以与前面错排后的排列任意一个数换位置,也可与与前面有i-2个数错排后(还有一个没错排)交换。(模板)
将整数\(n\)分成\(k\)份,且每份不能为空,求方案数
点击查看代码
for(int i=1;i<=n;i++){
for(int j=1;j<=k;j++){
if(i==j) f[i][j]=1;
else if(i<j) f[i][j]=0;
else f[i][j]=f[i-1][j-1]+f[i-j][j];
}
}
可以新添加一个1,也可以将每个已分出的区间都放一个1,转移。模板
斐波那契公式及其变式
(例),斐波那契公式不光可以正常推数,还可以表示像这种每次变化后长度/数字和。
结合二维矩阵例,其实像这种下标和值同时要小于某某的题看起来很二维数点,所以就可以想到列矩阵,然后分讨一下就可以了。

浙公网安备 33010602011771号