看题
\(\rm{T1}\)
需要好好想, 应该不是水
\(\rm{T2}\)
需要思考, 有点像边更新最优解这一类
\(\rm{T3}\)
转换一下好像是一个二分图???
然而并不是, 但是也没时间想了
\(\rm{T4}\)
做一做, 有机会骗之类的
不是说简单题吗?
时间分配 : \(40 \rm{min} + 20 \rm{min} + 40 \rm{min} + 20 \rm{min} + 30 \rm{min} + 30 \rm{min} + =20 \rm{min}\)
\(\rm{T1}\)
不死磕, 不畏难
现在我们只需要想题了, 题意没什么需要转换的
多半需要猜性质, 玩下样例
一个很强的性质是每个点必须且仅能选 \(1\) 次作为左端点或者右端点, 考虑从这里下手, 直接令其为左端点 \(1\) , 右端点 \(-1\) , 即可求前缀奇偶性是否满足序列要求, 特殊处理一下即可
对于一种可行的操作序列, 我们将序列调换之后仍然可行, 问题转化为求序列的种类数
那么直接 \(\rm{dfs}\) 可以拿到 \(40 \%\)
只能拿到这点了, \(\rm{sub}\) 推正解也是退不出来, 连 \(70 \%\) 都弄不出
\(\rm{made}\) , 打代码的时候想到了 \(70 \%\) , 但是没时间写了, 好像顺着推下去就有正解, 只需要记忆化一下即可
\(\rm{made}\) , 这个算法好像还是错的, 没分
\(\rm{T2}\)
对于 \(50 \%\) 的数据点, 直接输出 \(-1\) 即可
前 \(20 \%\) 直接预处理即可
注意到一个很强的性质, 即
保证在此之前在城市 \(x\) 与 \(y\) 之间不存在任何路径
也就是说每次连边都是加入割边, 最终的图一定是一个森林
并查集处理, 同连通块之间相当于一颗树, 把最终的树建出来之后, 离线的去处理询问即可, 具体的, 对于最终的树和询问时的树, 只要他们在询问时已经联通, 那么最短路不会发生变化, 即 \(\rm{LCA}\) 不变
时间复杂度 \(\mathcal{O} (q + n \log n + q \log n)\)
至此, 可以解决本题
不是哥们 \(\rm{T2}\) 比 \(\rm{T1}\) 简单多少????
框架
读入的时候边建树边判断 \(-1\) , 建完之后跑 \(\rm{LCA}\) 逐个处理
\(\rm{T3}\)
时间不够, 直接冲暴力
对于 \(30 \%\) , 我们可以发现, 直接枚举点集即可
剩下还有 \(10 \%\) 完全图一眼顶针, 直接输出 \(m - \lfloor \frac{n^2}{4} \rfloor\)
\(\rm{T4}\)
时间不够, 不写了
标签:20,赛时,min,30,即可,端点,12.4,rm,CW From: https://www.cnblogs.com/YzaCsp/p/18586319