動態規劃:假設前n-1本的取書方案已經解決,單獨考慮第n本的取舍,如果保留第n本增加了已知的不整齊度,則取掉第n本。 首先要按高度進行排序。 dp[i][j] //以i結尾,已取好j本書 初始化: dp[1][0]=0; for(i=2;i<=n;i++) dp[i][0]=dp[i-1][0]+Math.abs(w[i]-w[i-1]); 方程: dp[i][j]=min{dp[i-p-1][j-p]+abs(w[i]-w[i-p-1])},0<=p<=j,0<=j<=k ans=min(dp[n-i][k-i)]) ,0<=i<=k