请问这两个写法为什么不一样
  • 板块学术版
  • 楼主Ray662
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/10/20 21:44
  • 上次更新2024/10/21 09:08:37
查看原帖
请问这两个写法为什么不一样
502658
Ray662楼主2024/10/20 21:44

滚动 ff 数组(WA):

_for (i, 0, 1)  _for (j, 0, N - 1)  f[i][j] = inf;
	f[o = 0][1] = 0;
	while (q -- ) {
		cin >> op >> x, x -- , ch = op == 'R', cur_pos[last_ch] = last_x, o ^= 1;
		_for (i, 0, n - 1)  if (f[o ^ 1][i] < inf) {
			cur_pos[last_ch ^ 1] = i, solve(cur_pos[ch], x, cur_pos[ch ^ 1]);
			for (P t : res)  f[o][t.S] = min(f[o][t.S], f[o ^ 1][i] + t.F);
		}
		last_ch = ch, last_x = x;
	}
	_for (i, 0, n - 1)  ans = min(ans, f[o][i]);

不滚动(AC):

_for (i, 0, q)  _for (j, 0, N - 1)  f[i][j] = inf;
	f[0][1] = 0;
	_for (j, 0, q - 1) {
		cin >> op >> x, x -- , ch = op == 'R', cur_pos[last_ch] = last_x;
		_for (i, 0, n - 1)  if (f[j][i] < inf) {
			cur_pos[last_ch ^ 1] = i, solve(cur_pos[ch], x, cur_pos[ch ^ 1]);
			for (P t : res)  f[j + 1][t.S] = min(f[j + 1][t.S], f[j][i] + t.F);
		}
		last_ch = ch, last_x = x;
	}
	_for (i, 0, n - 1)  ans = min(ans, f[q][i]);
2024/10/20 21:44
加载中...