zoukankan      html  css  js  c++  java
  • 联赛模拟测试 15

    A.游戏

    每个装备只能用一次,那么我们就可以考虑二分图匹配。
    用装备向它的属性值建边,然后从属性值的 (1) 开始跑匈牙利。
    如果不能匹配了就是最大的攻击次数。

    需要注意,如果每次 (memset) 一定会 (T) ,所以我们记录一个时间戳,每次判断 (vis) 数组是否等于时间戳即可。

    B.嘟嘟噜

    裸的约瑟夫问题,容易得到通项公式 (p_{i} = (p_{i-1} + m) % i)(i) 为剩余人数。
    数据范围 (1e9) ,直接 (O(n)) 不可过,看到 (m) 远小于 (n) ,于是可以优化。
    我们找到一次最多可以条几步,然后直接加上这么多,时间大大优化,可过。
    跳的步数应该是 (min(n - i - 1,frac{i - x}{m}- 1))

    C.天才绅士少女助手克里斯蒂娜

    题目给出的是向量相乘,即叉积。
    设两个向量为 ((x,y),(a,b)) ,其叉积为 ((ay-bx)) ,然后我们就可以推柿子。

    [egin{array}{ll} ans &=& sum limits_{i=l}^r sum limits_{j=i+1}^r (v_i imes v_j)^2 \ &=& sum limits_{i=l}^r sum limits_{j=i+1}^r (x_iy_j-x_jy_i)^2 end{array} ]

    然后我们继续乘法分配率:

    [egin{array}{ll} ans &=& sum limits_{i=l}^{r} sum limits_{j=i+1}^r (x_i^2y_j^2+x_j^2y_i^2-2x_iy_ix_jy_j) \ &=& sum limits_{i=l}^r sum limits_{j=i+1}^r x_i^2y_j^2 + sum limits_{i=l}^r sum limits_{j=i+1}^r x_j^2y_i^2 - sum limits_{i=l}^r sum limits_{j=i+1}^r 2x_iy_ix_jy_j \ &=& sum limits_{i=l}^r sum limits_{j=l}^r [i!=j] imes x_i^2y_j^2 - sum limits_{i=l}^r sum limits_{j=l}^r [i!=j] imes x_iy_ix_jy_j \ &=& sum limits_{i=l}^r x_i^2 (sum limits_{j=l}^r y_j^2 -y_i^2) - (sum limits_{i=l}^r x_iy_i (sum limits_{j=l}^r x_jy_j - x_iy_i)) \ &=& sum limits_{i=l}^r x_i^2 sum limits_{j=l}^r y_j^2 - sum limits_{i=l}^r x_i^2y_i^2 - (sum limits_{i=l}^r x_iy_i sum limits_{j=l}^r x_jy_j - sum limits_{i=l}^r x_i^2 y_i^2) \ &=& sum limits_{i=l}^r x_i^2 imes sum limits_{i=l}^ry_i^2 - (sum limits_{i=l}^r x_iy_i)^2end{array} ]

    线段树维护 (sum limits_{i=l}^r x_i^2) , (sum limits_{i=l}^r y_i^2) , (sum limits_{i=l}^r x_iy_i) 即可。

    D.凤凰院凶真

    最长公共上升子序列 (LCIS) 板子。
    枚举的时候记录一下上次的更新位置和更新点即可,输出方案的时候递归输出。

    (Never Give Up)

  • 相关阅读:
    用ildasm和ilasm对.net下的exe程序进行破解初探
    随笔--各种概念等等
    C#高级编程学习一-----------------第五章泛型
    visual studio相关操作
    webservice开发
    delphi各种错
    android开发文章收藏
    android开发遇到的问题
    android应用开发基础知道
    数据库各种问题
  • 原文地址:https://www.cnblogs.com/Vocanda/p/13832068.html
Copyright © 2011-2022 走看看