2019暑假杭二day6测试总结

T1

题目大意

给你一颗 个点的边权均为1的树,找到一个点 ,使得距离点最远的点最近,输出距离点最远的点到点的距离。

sol

输出树的直径除2向上取整。

证明略

T2

题目大意

给你\(n\)根木棍和\(m\)次询问,第i根木棍长度为\(a_i\),每次询问给你两个数\(l,r\),你要在\(l,r\)区间内选出3根木棍组成一个三角形,使其周长最大。如果区间内没有三根木棍能组成一个三角形,输出-1。\(1<=n<=10^5,1<=m<=5*10^5,a_i<=10^9\)

sol

这是多校联测的原题,根据贪心,先取出第一、二、三长的木棍,看能不能拼成三角形,不能则继续取出第二、三、四长的木棍,继续判断。最坏情况木棍长为斐波那契数列,第45项就超过\(10^9\)了,所以45次判断后一定能拼成三角形。现在,问题变成了区间第k大问题,由于不带修,主席树即可。时间复杂度:\(\Theta(45mlog_2n)\)

T3

题目大意

给你一个长度为\(n\)的 01 串和\(m\)次询问,第\(i\)次询问会给你\(l\)\(r\),你需要输出以\(l\)\(r\)结尾的前缀中两两的最长公共后缀的最大值。

sol

还不会。正解要用SAMLCT,十分毒瘤,可能短期内不能补上了。

posted @ 2019-08-23 21:07  胡昊天  阅读(130)  评论(0编辑  收藏  举报