UOJ NOI Round #5 总结
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_x\ge 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 航天飞机调度
做法
不会$\times$2 ......