萌新刚学OI求改错(玄关)
查看原帖
萌新刚学OI求改错(玄关)
1287433
__ycy1124__楼主2024/7/21 11:30
#include<bits/stdc++.h>
using namespace std;
int dp[51][51][2],x[51],qzh[51];
int main(){
	int n,c;
	scanf("%d%d",&n,&c);
	for(int i=1;i<=n;i++){
		int w;
		scanf("%d%d",&x[i],&w);
		qzh[i]=qzh[i-1]+w;
	}
	dp[c][c][0]=dp[c][c][1]=0;
	for(int len=1;len<=n;len++){
		for(int i=1;i+len-1<=n;i++){
			dp[i][i+len-1][0]=min(dp[i+1][i+len-1][0]+(x[i+1]-x[i])*(qzh[n]-qzh[i+len-1]+qzh[i]),dp[i+1][i+len-1][1]+(x[i+len-1]-x[i])*(qzh[n]+qzh[i]-qzh[i+len-1]));
			dp[i][i+len-1][1]=min(dp[i][i+len-2][0]+(x[i+len-1]-x[i])*(qzh[n]+qzh[i-1]-qzh[i+len-2]),dp[i][i+len-2][1]+(x[i+len-1]-x[i+len-2])*(qzh[n]+qzh[i-1]-qzh[i+len-2]));
		}
	}
	printf("%d",min(dp[1][n][0],dp[1][n][1]));
	return 0;
}
2024/7/21 11:30
加载中...