2019-team321/C009
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
[[Image(standings.png,500px)]]
[[Image(submissions.png,500px)]]
== 流水账 ==
B题zkx读错题了,读成了曼哈顿距离,还上去写了一发。
A题zkx也读错题意了,导致yay想了一下错误的题意。
H题ypl没有发现要flush,结果wall time limit exceeded了几发。
== 总结 ==
=== zkx ===
1. B题写之前应该考虑一下,榜上没人过的话肯定不太可做。
==== G 题解 ====
设 f[i] 为对于前 i 个元素,拆分成一个上升序列,一个下降序列,且上升序列以 i 结尾是否可行。
g[i] 是下降序列以 i 结尾是否可行。[[BR]]
g[j] = 1,如果存在某个 f[i] = 1 且 [i+1, j] 下降,且 a[i] < a[j+1] [[BR]]
用线段树区间取 max,单点询问来快速求。
==== E 题解 ====
拉格朗日乘数法,可以直接解出 mu,看是否存在 p<0,如果存在的话直接把那个物品扔掉。
也可以直接枚举有多少个物品被扔掉(从小的开始扔)
=== yay ===
=== ypl ===
A: 5000 个点 1000000 次加边, 每条边颜色在 【1, 200】。 定义两个点连通, 当且仅当在每种颜色的边的作用下联通。 每次加边后, 问联通的点对个数。 对每种颜色用并查集, 点 x 的联通信息为 S(x) = 【点 x 在颜色 i 的边联通下的并查集的根】。 两个点联通当且仅当 S 相等。 对 S(x) 用 Hash 进行分类。 为了保证复杂度, 并查集需要按秩合并。


流水账
B题zkx读错题了,读成了曼哈顿距离,还上去写了一发。
A题zkx也读错题意了,导致yay想了一下错误的题意。
H题ypl没有发现要flush,结果wall time limit exceeded了几发。
总结
zkx
1. B题写之前应该考虑一下,榜上没人过的话肯定不太可做。
G 题解
设 f[i] 为对于前 i 个元素,拆分成一个上升序列,一个下降序列,且上升序列以 i 结尾是否可行。
g[i] 是下降序列以 i 结尾是否可行。
g[j] = 1,如果存在某个 f[i] = 1 且 [i+1, j] 下降,且 a[i] < a[j+1]
用线段树区间取 max,单点询问来快速求。
E 题解
拉格朗日乘数法,可以直接解出 mu,看是否存在 p<0,如果存在的话直接把那个物品扔掉。
也可以直接枚举有多少个物品被扔掉(从小的开始扔)
yay
ypl
A: 5000 个点 1000000 次加边, 每条边颜色在 【1, 200】。 定义两个点连通, 当且仅当在每种颜色的边的作用下联通。 每次加边后, 问联通的点对个数。 对每种颜色用并查集, 点 x 的联通信息为 S(x) = 【点 x 在颜色 i 的边联通下的并查集的根】。 两个点联通当且仅当 S 相等。 对 S(x) 用 Hash 进行分类。 为了保证复杂度, 并查集需要按秩合并。