• 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)

  • 相关阅读:
    C++的虚函数与多态
    Qt界面的个性设置QSS
    Qt添加背景图片应该注意的问题
    c/c++的函数参数与返回值
    堆和栈
    linux下挂载u盘
    Qt的主窗口弹出消息框
    智能家居实训系统的项目有感!
    Qt 快捷键
    FB
  • 原文地址:https://www.cnblogs.com/jz929/p/13734937.html
Copyright © 2020-2023  润新知