1 条题解
-
0
C++ :
#include <iostream> #include <algorithm> using namespace std; const int N(1003),oo(0x7ffffff); int f[N][N][2]={0},t[N]={0},w[N][N]={0}; int main() { int n,v; cin>>n>>v; for(int i=1;i<=n;i++) cin>>t[i]>>w[i][i]; for(int i=1;i<=n;i++) w[1][i]=w[1][i-1]+w[i][i]; for(int i=n;i>=1;i--) w[i][n]=w[i+1][n]+w[i][i]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) f[i][j][0]=f[i][j][1]=oo; f[v][v][0]=f[v][v][1]=0; for(int i=v;i>=1;i--) for(int j=v;j<=n;j++) if(i!=j) { f[i][j][0]=min(f[i+1][j][0]+(t[i+1]-t[i])*(w[1][i]+w[j+1][n]), f[i+1][j][1]+(t[j]-t[i])*(w[1][i]+w[j+1][n])); f[i][j][1]=min(f[i][j-1][1]+(t[j]-t[j-1])*(w[1][i-1]+w[j][n]), f[i][j-1][0]+(t[j]-t[i])*(w[1][i-1]+w[j][n])); } cout<<min(f[1][n][0],f[1][n][1])<<endl; return 0; }
- 1
信息
- ID
- 771
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者