这是正确的
for(int i=1;i<=n;i++){
dp[1][i]=w(1,i);
}
for(int k=2;k<=m;k++){
pos[k][n+1]=n;
for(int i=n;i>=1;i--){
dp[k][i]=2e9;
for(int j=max(2,pos[k-1][i]);j<=min(pos[k][i+1],i);j++){
if(dp[k-1][j-1]+w(j,i)<dp[k][i]){
dp[k][i]=dp[k-1][j-1]+w(j,i),pos[k][i]=j;
}
}
}
}
但我什么我对pos[1][i]=i这样写就错了