怎们MLE了?玄关
查看原帖
怎们MLE了?玄关
1399134
xuzhiwen20120305楼主2025/1/16 15:51

//如何解决

#include <bits/stdc++.h>
using namespace std;
const int v = 1e4 + 5000;
long long n;
long long l[v], r[v];
long long f[v][v];
long long y, y2;

int main() {
	cin >> n;
	for (long long i = 1; i <= n; i++) {
		cin >> l[i] >> r[i];
	}
	f[0][0] = f[0][1] = 0;
	y = y2 = 1;
	for (long long i = 1; i <= n; i++) {
		f[i][0] = min(f[i - 1][0] + abs(r[i] - y), f[i - 1][1] + abs(r[i] - y2)) + r[i] - l[i];
		f[i][1] = min(f[i - 1][0] + abs(l[i] - y), f[i - 1][1] + abs(l[i] - y2)) + r[i] - l[i];
		y = l[i];
		y2 = r[i];
	}
	f[n][0] += n - y;
	f[n][1] += n - y2;
	cout << min(f[n][0], f[n][1]) + n - 1;
}
2025/1/16 15:51
加载中...