社区讨论

警示后人

P5504[JSOI2011] 柠檬参与者 3已保存回复 5

讨论操作

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

当前回复
4 条
当前快照
1 份
快照标识符
@mkewyqzs
此快照首次捕获于
2026/01/15 11:52
上个月
此快照最后确认于
2026/01/17 23:55
上个月
查看原帖
如果你的转移方程和我一样,判颜色相同是 j + 1 但转移是 j,部分暴力代码如下:
CPP
if(a[j + 1] != a[i]) continue;
int cnt = (s[i] - s[j + 1] + 1);
f[i] = max(f[i], f[j] + 1ll * a[i] * cnt * cnt);
那么在第二个单调栈维护栈内斜率单调递减,要 push 在颜色为 a[i + 1] 的队列里;并且注意判断斜率的时候应用 i 判不要用 i + 1 判,不然会导致一些奇怪的错误。
最后,不开 long long 得 82。(话说虽然这个帖说要开 __int128,实测似乎不用)

回复

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

正在加载回复...