• noi前第十场 题解


    A. 集合划分

    可以直接写出一个简单的 (dp),然后发现这个 (dp) 的信息只需要存 (A) 集合选的个数和末尾选的哪个集合。
    不妨写成一个多项式,那么我们只关心边界的情况。
    所以写一个分治 (FFT) 即可。
     

    B. ACT4!⽆限回转!

    考虑对于每条边,枚举所有能到达这条边的角度,计算出合法的面积。
    所以只需要对角度进行积分即可。
    为了方便地计算出这个东西,可以对边的左右端点分别积分,计算每个角度的射线以右的面积。
    发现单点求值只需要在凸包上二分即可计算出来,所以写个辛普森积分就完了。
     

    C. 积木

    要求的是 (sum limits_{i,j}frac{(a_i+b_i+c_i+a_j+b_j+c_j)!}{(a_i+a_j)!(b_i+b_j)!(c_i+c_j)!})
    这个组合数可以用类似范德蒙恒等式的东西,开一个桶并暴力查桶,来做到 (O(n * sum limits_{i}a_ib_i)) 求出对于每个 (i) 的答案。
    其实这个问题还等价于对于所有的路径求和。
    发现值域不大,而且只需要输出一个数,所以在三维网格上 (dp) 一下即可。

  • 相关阅读:
    对volatile的理解
    CAP定理与BASE理论
    选择排序
    冒泡排序
    python使图片转化为pdf
    宝藏网站
    python操作es更新某个字段的名字,不根据id
    PhpStorm 断点调试
    简单理解cookie与session
    虚拟判题机对接文档
  • 原文地址:https://www.cnblogs.com/skyh/p/13361993.html
Copyright © 2020-2023  润新知