2020.09.26【省选组】模拟 总结

估分:\(60 + 80 + 0 = 140\)
考场:\(10 + 70 + 0 = 80\)
简单三角形原来可以是凹多边形。。。

\(T1\)

简单三角形原来可以是凹多边形。。。
我的方法只能处理凸多边形的问题,时间复杂度\(O(n^2*m+s*q)\)
其实就是将多边形分成多个三角形,而对于每个三角形,我们可以拆成三个其中一个节点为原点的三角形。
于是我们可以\(O(n^2*m)\)预处理,然后输入的时候,顺着累加答案即可。
但是,简单三角形可以是凹多边形
所以一切都变了,“大人,时代变了”
\(LJ\)说似乎可以用类似容斥的方法抵消掉,如果一条边的起点的极角大于终点的极角,则加上\(OXY\)三角形的贡献,否则减去\(OXY\)三角形的贡献。
拆多边形的操作还是类似的。
不过,确实如此,归纳法可以证明上述方法。
而后还有一些其他的方法,新写一个博客来讲吧。。。

\(T2\)

对于\(m=n-1\)的显然可以用点分治乱搞。
对于\(m=n\)的情况。。。感觉似乎可以拆一条边,然后用点分治,然后再考虑一定要经过那条被拆的边的贡献。
似乎有点难打,于是乎,弃了最后一小部分。
点分治部分考场打错了,递归\(solve\)进去的是找到的重心\(rt\),而不是\(v\)
对于最后一个部分,发现原来还是比较好打的。
我们可以先处理不经过特定边(其中一个环边)的答案。
然后我们在用树状数组来处理剩下的强制经过特定边的答案。
对于\(1---2---3---4\),假设\((1,2)\)为特定边。
那么我们可以先将\(1\)子树的深度丢到树状数组中。
而后从\(4\)开始倒着搞,先求\(4\)子树必经\((1,2)\)的答案,也就是树状数组中\([K-dep-(4-1),n]\)的答案。
而后再修改操作,我们将\(4\)子树的\(dep+(4-4+2)\)添加到树状数组中。
如此操作即可。

\(T3\)

考场没有话太多时间去想,ε=(´ο`*)))唉

总结

审题还是要仔细,对于简单三角形这种概念性的问题,下次一定要小心注意。
而且对于一些思考起来比较复杂的问题,一定要坚持下去,不要放弃。
还是最好每一道题都打了,这样才不会留下任何遗憾。(o(╥﹏╥)o)

posted @ 2020-09-26 14:30  jz929  阅读(93)  评论(0编辑  收藏  举报