UOJ NOI Round #5 总结
不知道是比赛时间的问题还是什么其他的,
总之非常菜
以下皆为口胡,若有错漏请不吝赐教
Day1 A 提问系统
做法
答案变化之后只用维护(k_i = sum p_b^i, quad i in [0, 3])
考虑(DP),如果将栈视作树形结构的话自下而上是(O(k^3)),自上而下就是(O(k^2))
Day1 B 答案查重
做法
不会……
Day1 C 排名预测
做法
寻找性质:假设以(x)为根的子树最大dfn为(low_x),有解当且仅当(forall x, low_xge a_x)
设(f_i)表示(i)点最小可行dfn即可。
Day2 A 获奖名单
做法
左右两边匹配有两种情况:
- 一个名字对应一个名字。
- 单字+多个双字对应多个双字+单字
先考虑第二种,发现相当于单字代表(S)向(name_i)连无向边,双字代表(name_{i, 1})向(name_{i, 2})连边的包含(S)的联通块的欧拉回路/通路(取决于(L)的奇偶性)
剩下的联通块要求同一条边使用偶数次即可。
细节有亿点多。
Day2 B 诡异操作
做法
考虑用线段树维护。
线段树上维护区间最大值、区间或、区间和。
修改时不合法就不再向下了。
时间复杂度应当是(O(n log n log v + q log n))
然而并过不去
据说线段树底层来点分块就好了
Day2 C 航天飞机调度
做法
不会$ imes$2 ......