DP问题(2) : hdu 1421
这道题很水 但我还是调了0.25h 感谢wsy大佬的帮助 emmm...... 首先,这肯定是一个n*k的dp 其中,i表示有i个物品,j表示需要搬j回 那么我们可以得出它的转移方程: dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(int)pow((w[i]-w[i-1]),2)); 让后就很简单了 才怪,上面的我10min就想出来了,下面才让我最头疼 初始化 下面是我原来写的初始化: memset(dp,0x7f,sizeof(dp)); 然后各种WA 然后改了一下 (25min) ,如下: for(int i=0;i<=n;i++) for(int j=1;j<=k;j++) dp[i][j]=inf; 然后就AC了!!! 一个memset让我调了0.25h! (好不值) 以下是AC代码: #include<iostream> #include<stdio.h> #include<algorithm> #include<string.h> #include<cmath> #define inf 2147483647 using namespace std; int n,k; int w[2005]; int dp[2005][2005]; int main() { while(scanf("%d%d",&n,&k)!=EOF) { for(int