社区讨论

(全局)进食厚仁

题目总版参与者 8已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@mk4sggv3
此快照首次捕获于
2026/01/08 09:48
2 个月前
此快照最后确认于
2026/01/10 20:10
2 个月前
查看原帖
在 C++11(及以上)中,min 函数传入函数传入的是 bool cmp 而不是 int min
以下是 错误 示范:
CPP
struct st
{
	int f[N][M];
	void build()
	{
		for (int j = 1; j <= __lg(tot); ++j)
		{
			for (int i = 1; i + (1 << j) - 1 <= tot; ++i)
			{
				f[i][j] = min(f[i][j - 1], f[i + (1 << (j - 1))][j - 1], [](int x, int y)
							  { return dfn[x] < dfn[y] ? x : y; });
			}
		}
	}
	int query(int l, int r)
	{
		if (r < l)
			return 0;
		int k = __lg(r - l + 1);
		return min(f[l][k], f[r - (1 << k) + 1][k], [](int x, int y)
				   { return dfn[x] < dfn[y] ? x : y; });
	}
} st;
以下是 正确 示范:
CPP
struct st
{
	int f[N][M];
	void build()
	{
		for (int j = 1; j <= __lg(tot); ++j)
		{
			for (int i = 1; i + (1 << j) - 1 <= tot; ++i)
			{
				f[i][j] = min(f[i][j - 1], f[i + (1 << (j - 1))][j - 1], [](int x, int y)
							  { return dfn[x] < dfn[y]; });
			}
		}
	}
	int query(int l, int r)
	{
		if (r < l)
			return 0;
		int k = __lg(r - l + 1);
		return min(f[l][k], f[r - (1 << k) + 1][k], [](int x, int y)
				   { return dfn[x] < dfn[y]; });
	}
} st;

回复

7 条回复,欢迎继续交流。

正在加载回复...