@[earl0701](/user/818019)
```cpp
#include <bits/stdc++.h>
using namespace std;
int n,c;
int m[50],p[50];
int dp[50][50][2];
int g(int i,int j,int l,int r){
return (m[j] - m[i]) *( p[l] + p[n] - p[r - 1]);
}
int main(){
cin >> n >> c;
memset(p,0,sizeof(p));
memset(dp,0x3f,sizeof(dp));
for(int i = 1;i <= n;i++){
int a,b;
cin >> a >> b;
m[i] = a;
p[i] = p[i - 1] + b;
}
dp[c][c][1] = dp[c][c][0] = 0;
for(int j = c;j <= n;j++){
for(int i = j - 1;i > 0;i--){
int q = min(dp[i + 1][j][0] + g(i,i + 1,i,j + 1),dp[i + 1][j][1] + g(i,j,i,j + 1));
int w = min(dp[i][j - 1][0] + g(i,j,i - 1,j),dp[i][j - 1][1] + g(j - 1,j,i - 1,j));
dp[i][j][0] = q;
dp[i][j][1] = w;
}
}
int k = min(dp[1][n][0],dp[1][n][1]);
cout << k;
return 0;
}
```
按这个
by dongrq_cs @ 2023-05-07 10:36:56
@[dongrq_cs](/user/644394) 他写的广搜,你给了你的代码有鸟用?
by _Virgo_ @ 2023-05-09 09:51:24