zoukankan      html  css  js  c++  java
  • 省选模拟22

    A. 遮天蔽日

      毒瘤计算几何。

      首先对于重心可以将多边形三角剖分,那么重心就是每个三角形重心对于面积的加权平均。

      然而这个东西只适用于凸多边形,对于任意多边形只需要将三角形的面积和重心变成有向的,用叉积即可。

      对于旋转,可以考虑复数中乘法模长相乘,幅角相加的性质,如果我们将一个向量看做一个复数,那么只要乘上旋转角方向的单位向量就可以了。

      然后就可以将重心公转,假如不考虑自转那么整个多边形的形状是不会改变的,所以可以得出公转之后多边形的位置。

      自转就比较简单。之后就是求出来被遮挡的面积。

      考虑求出来所有有用的直线(太阳和所有端点的连线,切线),按照极角排序,那么相邻两条线中间的弧要么全部能看到,要么全不能。

      所以只要在这段弧上任取一点,判断这个点和太阳的连线是否经过干扰器即可。

      然而不好打,所以现在还没打出来。

    B. 三元组

      用PAM做非常无脑,直接干就完了。

      对于每一个点,用PAM可以求出来以他为结尾的回文串的总长度,和以它为结尾的回文串个数,于是就可以得到回文串开头的下标之和。

      同理把串翻转再做一遍就可以得到结尾的下标之和。对应位置乘起来即可。

    C. 最有价值

      最大权闭合子图模板题,类似寿司餐厅,不想说了。

  • 相关阅读:
    C++-struct类的新特性当class用
    rbenv、fish 與 VSCode 設置之路
    angularJS进阶阶段(4)
    插入排序
    Vimium
    Design Patterns 25
    Mysql(或者sqlite), Mongo中update Column + 1
    Hexo
    继承
    Gradle的依赖方式——Lombok在Gradle中的正确配置姿势
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12288811.html
Copyright © 2011-2022 走看看