2019-2020 Saint-Petersburg Open High School Programming Contest (SpbKOSHP 19)
2019-2020 Saint-Petersburg Open High School Programming Contest (SpbKOSHP 19)
- easy: ABFGHI
- medium-easy: CE
- medium: JK
- ?????: D
Problem A. King’s Inspection
签到。
Problem B. Cash Gap
贪心。
Problem C. Jet Trains
并查集维护 T 边连通性,对于每个连通块用 set 维护从这个连通块连向外面的 F 边。set 启发式合并即可。复杂度 \(O(n (logn)^2)\)
Problem D. Cutting Pizza
好难不会。
Problem E. Unique Solution
- 给 \(a_i \neq 0\) 的位置分配最高的若干个 2 的幂次。
- eg
1 0 -1 1 0 0
,ans =2^5 2^2 -2^4 2^3 2^1 2^0
- 根据不等式取等号的条件,\(a_i \neq 0\) 的位置可以约束住。
- 其它解在 \(a_i = 0\) 的位置的变量也一定为 \(0\),否则求和后的 lowbit 会解体。
Problem F. Metro 2345
最短路
Problem G. Weight Overflow
找到两个 sum 相等的集合。扔掉交即可。
Problem H. Checking Answers to Test
按题意模拟。
Problem I. Magic Trick
Problem J. Superpermutations
\(rank[n] = (rank[n-1] - 1) * n + shift[n] + 1\)
\(pos[n] = pos[n-1] + (rank[n-1] - 1) * n + shift[n]\)
\(pos[1]=rank[1]=1\)
Problem K. Preparing Tests
Two-pointer 求每个左端点的极大右端点,需要删边加边同时维护连通性,LCT 即可。
summary and replay
- CB 又炸了,记得保存。
- K 题读错题了,记得看样例解释。
- E 一开始正确性没考虑好。