• 08-09 NOIP模拟测试15


    期望得分:60+100+10

    实际得分:60+100+10

    终于把自己的期望得分拿满了唔。


    A. 建设城市(city)

    简化题意:n个桶,m个小球,把所有小球放到桶里,每个桶中的小球个数只能是[1,k]。

    很像《那一天我们许下的约定》,那题也需要求类似每次增加[1,m]的答案。

    但那题除去不给饼干的天后最多只有n为2000天,$Theta(N^2)$ dp可做。

    $dp[i][j]= sumlimits dp[i-1][l]   j-k leq l leq j-1$

    之后用组合数求解所有D天。

    然而这题的n很大,dp不可做。

    于是更加优秀的算法出现了:怎么学也学不会,怎么想也想不到的腊鸡容斥

    我们先不管k的上限,先保证n个点都放上至少1个,应用挡板法。

    把m个小球线性排布,有m-1个空,因为要分成n个区间,所以有n-1个挡板。所以有 $C_{m-1}^{n-1}$

    考虑荣斥掉不合法的。

    至少有一个不合法:先从m个中拿出k个,然后把剩下的m-k个分到每个桶里(保证每个桶里至少有1个),还是挡板法。然后再把k个球加进某个桶里,这样就使至少那1个桶不合法。

    至少i个同理。然后奇减偶加就可以扣掉所有不合法的。

    还有一个一直以来的zz误区。

    组合数不一定要用Lucas哇,Lucas只是能帮你在n m很大不可打表而p可做的时候降低打表范围添加logp复杂度的哇。


    B. 轰炸行动(bomb)

    这题我纠结了好久的直接还是间接连通,两个都想了下,觉得直接的结论太扯了,于是开始打间接。

    不难发现是在求最长链,对于scc,直接缩掉记录siz不影响。

    然后反图拓扑即可,即只有我更新完全才能够更新别人。

     


    C. 石头剪刀布(rps)

  • 相关阅读:
    SSRS_NOTE
    github快速使用指南
    Serving 404s instead of errors solved :)
    如何提高LINQtoSQL延时加载的性能
    SqlServer开发利器—SQL Prompt5
    内核通知链 学习笔记 arm
    Excel报表之js版
    JS修改Table中Td的值。
    什么时候能忙完~
    JS修改Table中Td的值(修改)
  • 原文地址:https://www.cnblogs.com/hzoi-yzh/p/11328567.html
Copyright © 2020-2023  润新知