zoukankan      html  css  js  c++  java
  • 2021山威寒假培训收官检验赛题解

    L1-4

    打表找规律发现答案是 (leftlfloor sqrt n ight floor)
    证明: 一个数的约数一定是成对出现的, 故当一个数是完全平方数的时候,它的约数个数是奇数。 所以只要求出 (1) ~ (n) 中完全平方数的个数即可, 那么答案就是 (leftlfloor sqrt n ight floor).

    L1-8

    通过前十五项 (1,2,3,4,5,6,7,8,9,10,11,12,21,22,23)
    发现(10,11,12)是由第一项通过 (1 * 10 + 1 - 1, 1 * 10 + 1 , 1 * 10 + 1 + 1) 得到的
    同理(21,22,23)是由第二项按照上述方式构造的
    我们可以用前面的项按照上述的构造方式按顺序构造新的项:
    假设当前项为 (x), 它的最低位为 (y), 那么构造出来的新的项分别为 (x * 10 + y - 1), (x * 10 + y), (x * 10 + y + 1)
    注:最低位 (y)(0)(9) 时要特判边界

    L2-2

    假设 (n = 3) , (3) 个数分别是 (a, b, c)
    (sum_{i=1}^3sum_{j = i}^3 = (dfrac{a}{1} + dfrac{b}{2} + dfrac{c}{3}) + (dfrac{b}{2} + dfrac{c}{3}) + (dfrac{c}{3}) = a + b + c)
    故任何顺序的答案都是(a + b + c), 只要判断所有元素的和是否与 (m) 相等即可

    L2-3

    L3-1

    对每个人维护一个贡献 (f_i)
    这个值包括他自身的码力值 (w_i) 和 他所在每一对关系的 (z_i)
    维护一个全局答案 (ans)
    对于每一对关系,先将 (ans) 减去所有的 (z_i), 表示一个人都不选
    若某对关系中一个人都没有选, 等价于 (ans) 减去了一个 (z_i), 即该关系需要额外减少的值
    若选择了一对关系中的一个人, 等价于 (ans) 减去了一个 (z_i), 又加上了一个(z_i), 相互抵消
    若选择了一对关系中的两个人, 等价于 (ans) 减去了一个 (z_i), 又加上了两个(z_i),即该关系需要额外增加的值
    为了使得 (ans) 最大, 按照上述构造方式,我们只要贪心的选择 (f_i > 0) 的人即可

    L3-2

    可以相互交换的两个元素可以合并到同一个集合内, 用并查集把整个区间划分为多个集合
    在每个集合内部, 求一下可以匹配的最大数量
    具体操作可以对每个集合维护一个 (map), 对于当前位置, (source_i)的贡献 (+1), (target_i)的贡献 (-1) ,如果可以匹配上,则相互抵消
    最终正数贡献的和即为答案

    L3-3

  • 相关阅读:
    关于json的一些自己的了解
    .Net Core 控制台 使用Topshelf 加入DI(服务注册)
    【Linux】Centos7 入门到放弃记录
    【git】.net core +git减少包体积
    【git-bug累计】实践中git命令出现的问题总结
    [Bug] uni-app 上下切屏tabbar底部导航显示问题
    .NetCore2.0 vue-element-admin 出现的错误记录
    黑盒测试总结
    sql 学习笔记
    Linux 学习笔记
  • 原文地址:https://www.cnblogs.com/ooctober/p/14431620.html
Copyright © 2011-2022 走看看