洛谷P1359租用游艇

洛谷P1359租用游艇_第1张图片
建议跟着我的代码自己打个表就懂了

#include
using namespace std;
int n;
int t[205][205];//时间
int dp[205];//dp数组
int w[205][205];从i到j的时间
int main(){
	cin >> n;
	int i,j;
	for(i = 1; i <= n-1; ++i){//赋值
		for(j = i+1;j <= n; ++j){
			cin >> t[i][j];
		}
}	for(i = 2; i <= n; ++i){//从2开始将dp数组赋值10000000,方便比较大小
		dp[i] = 10000000;
}
	for(i = 1; i <= n-1; ++i){
		for(j = i+1;j <= n; ++j){
			w[i][j] = dp[i] + t[i][j];//dp[i]是到i港口所用最短时间,加上从i港口到j港口的时间
			dp[j] = min(dp[j],w[i][j]);//取最小值,到j港口的最小时间
		}
}
	cout << dp[n];//输出
	return 0;
}

你可能感兴趣的:(洛谷)