2019-team2/Sp089
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
总结
Heltion写完C就跑去打Kotlin了,留下一堆bug的代码给lyk调到赛后半个多小时.
题解
A. 先对原序列搞个单调压缩映射变成值域1到m,然后相邻不连续的地方肯定断开,相邻连续的部分相当于是一个类似DP的东西,从i到i+1只能保留一个连接,并且如果有多于一个i,那么i-1到i和i到i+1的连接不能是同一段i.
B. max(1,n-2)
C. DP[i][x][y]表示到第i个数组,方向为(x,y)所需的转角数.方向只需要取[-30,30]之间(也许更少)的所有既约方向,复杂度是O(16d^2^).不平行只需要判射线交,重合的需要认真考虑.
D. 签到
E. 不会
F. 先预处理出来每个点作为子树根对应的最大区间,从整个数组开始,每次选一个对应区间覆盖该区间的点,然后两边递归下去.注意到暴力两边往中间搜总复杂度是正确的.也可以用可持久化线段树对数时间求出任意区间的答案.
G. 几何,随便算算
H. d足够大全给一个人,d比较小暴力枚举.
I. 根据d-s从大到小排序后DP.
J. 找找规律,发现可以独立处理每个2,然后它自己变成1,这一段前后如果有0各加一,把与它对称位置的地方减一.
K. 假设知道方案可以平方复杂度计算答案.最优解是将A看成最小的排序,然后第一轮让A和最小的那些人轮空.
总结
Heltion写完C就跑去打Kotlin了,留下一堆bug的代码给lyk调到赛后半个多小时.
题解
A. 先对原序列搞个单调压缩映射变成值域1到m,然后相邻不连续的地方肯定断开,相邻连续的部分相当于是一个类似DP的东西,从i到i+1只能保留一个连接,并且如果有多于一个i,那么i-1到i和i到i+1的连接不能是同一段i.
B. max(1,n-2)
C. DP[i][x][y]表示到第i个数组,方向为(x,y)所需的转角数.方向只需要取[-30,30]之间(也许更少)的所有既约方向,复杂度是O(16d2).不平行只需要判射线交,重合的需要认真考虑.
D. 签到
E. 不会
F. 先预处理出来每个点作为子树根对应的最大区间,从整个数组开始,每次选一个对应区间覆盖该区间的点,然后两边递归下去.注意到暴力两边往中间搜总复杂度是正确的.也可以用可持久化线段树对数时间求出任意区间的答案.
G. 几何,随便算算
H. d足够大全给一个人,d比较小暴力枚举.
I. 根据d-s从大到小排序后DP.
J. 找找规律,发现可以独立处理每个2,然后它自己变成1,这一段前后如果有0各加一,把与它对称位置的地方减一.
K. 假设知道方案可以平方复杂度计算答案.最优解是将A看成最小的排序,然后第一轮让A和最小的那些人轮空.