不容易的系列之一
题目大意:1~n个信封,1~n封信,求全部装错的情况数
思路:F[1]=0,F[2]=1,n>=3时假设信n装入信封k,信m装入信封n,考虑两种情况:1)m=k,此时仅需一次对换则n,k都装对,剩余n-2个全部装错,由于k<=n-1,有n-1中取法,所以为(n-1)*F[n-2]。2)m<>k,此时将信m和信n对换则信n装入信封n,信封m装信k,剩余n-1全部装错,(n-1)*F[n-1]
状态转移方程:F[n]=(n-1)*F[n-1]+(n-1)*F[n-2](错排公式)
搬寝室
题目大意:在n个物品中选2*k个搬走,每次搬运疲劳度为二者重量差的平方,求最小疲劳度
思路:可证配对情况必为重量最大的与次大的为一对,最小的与次小的为一对。则可先对a[]排序。dp[i][j]表示到1~j中选取了i对搬运,则有两种情况,a[j-1]已配对;a[j-1]未配对
初始化:dp[0][j]=0,注意 j<=2*i时dp[i][j]要初始化为INF,即j-1和j必须配对状态转移方程:dp[i][j]=min{ dp[i][j-1] , dp[i-1]