求助记忆化搜索写假了
查看原帖
求助记忆化搜索写假了
421781
liuzimingc楼主2022/3/12 11:55

RT,代码如下:

#include <bits/stdc++.h>
using namespace std;
const int N = 1e4 + 5;
#define p first
#define t second
int m, n, f[N];
pair<int, int> v[N];

int dfs(int now_time, int last) {
	if (now_time > v[n].p) return 0;
	if (f[now_time] != -1) return f[now_time];
	int i = last + 1;
	for (; i <= n; i++)
		if (v[i].p >= now_time) break;
	int res = INT_MAX;
	for (int j = i; j <= n; j++) {
		if (v[j].p != v[i].p) break;
		res = min(res, v[j].t + dfs(v[j].p + v[j].t - 1, j));
	}
	return f[now_time] = res;
}
int main() {
	memset(f, -1, sizeof(f));
	cin >> m >> n;
	for (int i = 1; i <= n; i++)
		cin >> v[i].p >> v[i].t;
	sort(v + 1, v + 1 + n);
	cout << m - dfs(1, 0) << endl;
	return 0;
}

只过了样例 & 第一个点。。。

2022/3/12 11:55
加载中...