社区讨论
(全局)进食厚仁
题目总版参与者 8已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @mk4sggv3
- 此快照首次捕获于
- 2026/01/08 09:48 2 个月前
- 此快照最后确认于
- 2026/01/10 20:10 2 个月前
在 C++11(及以上)中,
min 函数传入函数传入的是 bool cmp 而不是 int min。以下是 错误 示范:
CPPstruct 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;
以下是 正确 示范:
CPPstruct 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 条回复,欢迎继续交流。
正在加载回复...