• 多校补完计划 2017-02


      #  
    Solved 785 / 2826 A HDU 6045 Is Derek lying?
      15 / 118 B HDU 6046 hash
    Solved 607 / 1700 C HDU 6047 Maximum Sequence
      38 / 175 D HDU 6048 Puzzle
      29 / 249 E HDU 6049 Sdjpx Is Happy
      241 / 740 F HDU 6050 Funny Function
      12 / 32 G HDU 6051 If the starlight never fade
      60 / 293 H HDU 6052 To my boyfriend
      200 / 1929 I HDU 6053 TrickGCD
      5 / 57 J HDU 6054 String and String
    Solved 624 / 2621 K HDU 6055 Regular polygon

    持续更新?

    A

    两个人做三选一的选择题,然后给出一个得分情况,问结果能不能肯定是假的

    解法:

    我们记相同的选择个数为$cnt$

    显然:  1.两个人的分数之差,是由不同的选择得到的因此,$n-cnt>=|X-Y|$

       2.其次,为了使得两个人分数凑到$X$和$Y$,;两个人的分数之和肯定要小于理论的最大值,理论的最大值也就是两个人相同的部分都是正确,且不同的地方两个人一定有一个人是正确的,换句话说,所有题至少得了一分,相同的得到了双倍

          也就是$X+Y<=n+cnt$

    B

    不会

    C

    给2个数列,一个是数列本身$A$,一个是标号序列$B$,现在要求你再构造长度为$n$的数列$A_{i+1} ... A_{2n}$,每个数字对应$B$中不同的一个元素,

      满足:$a_i$小于等于最大的$a_j - j $ 其中的标号 $j$ 大于等于$a_i$对应的那个元素$b_k$

      求构造的最大数列和,答案要取模

    对于样例

      8 11 8 5

      3 1 2 4

      先让 $B$ 中的2 对应 $a_5$ 得到 $8 11 8 5 9 (11-2)$

      再是 1对应 $a_6$ 得到 $8 11 5 9 9 (11-2)$

      再让3 对应 $a_7$ 得到 $8 11 5 9 9 5 (8-3=5)$

      最后是4 对赢$a_8$ 得到 $8 11 5 9 9 5 4 (9-5=4)$

       答案就是$ 9+9+5+4 = 27 $

     解法:

      其实样例里的1,2是可以互换的,猜到了贪心,我们把$B$排序,然后每次取$b_i$之后的最大值即可

      而取最小值可以用线段树也可以用树状数组,也可以预处理

    D

    E

    F

    G

    H

    I

    J

    K

     给一些整数点,问能凑出多少正多边形?

    解法:

      一个结论是,所有点都是整点的正多边形只有正方形,因此只用数正方形即可....

      我们考虑$O(n^2)$的算法,枚举对角线上的两个点,对于对角线上的两个点$(0,0),(a,b)$,可以推导出,另外两个点的坐标分别为$((a+b)/2,(b-a)/2)$和$((a-b)/2,(a+b)/2)$,只需要判断点是否存在即可

      注意

      1.可能爆负数,因此用map比较好,虽然慢了不少...

      2.因为每个正方形有2个对角线,因此答案需要除以二

      3.因为$(x+y)/2$可能会导致整数丢失,所以在输入的时候乘二,或者判断奇偶性

  • 相关阅读:
    Python-dict与set
    Python-实现对表插入百万条数据
    Python—元组tuple
    数据库查询
    python-操作MySQL数据库
    Python-类的继承
    Python-内置类属性
    Python-类的概念及使用1
    Python异常处理
    了解dto概念,什么是DTO
  • 原文地址:https://www.cnblogs.com/nervendnig/p/9339490.html
Copyright © 2020-2023  润新知