zoukankan      html  css  js  c++  java
  • 27 October in ss

    Contest

    A. chrono

    计算某年的干支纪年法年份。

    Too easy.

    然而我忘记 C++ 取模运算是向0取整。然而数据太水,还是有 90 分。

    B. clock

    计算某时刻时针和分针的夹角。假设时针和分针指针任意时刻对齐刻度,例如时刻 12:11 夹角为 0°,时刻 12:12 夹角为 6°。角度值范围 [0°, 180°)。

    Too easy.

    C. sequence

    给定一个长度为 (n) 的数列 (a),每个修改操作仅限对一段连续区间进行自增、自减,求使数列每个数相同的最小操作次数,以及达到操作次数最小的方案总数。$1le nle 10^5, 0le a_i< 2^{31}, a_iin mathbf{N} $。

    样例输入:

    10
    4 32 16 23 46 49 42 16 30 21 
    

    样例输出:

    75
    18 
    

    先对数列求出差分数组,记为 (d={28,-16,7,23,3,-7,-26,14,-9})

    求出 (d) 中所有正数的和、所有负数的和的相反数,二者最大值即为最小操作次数。

    二者的差 (+1) 即为方案总数。

    Why?

    每次对数列的修改操作,对应到差分数组当中,则为(d) 中任意两个数进行修改,其中:一个自增、一个自减。由此,问题转化为把差分数组变为全 0 的操作次数。

    显然,把正数变为 0 和把负数变为 0 应该是同步的,而其中一者多出来的次数是数组整体做修改。所以最小操作次数即为二者最大值。多余的操作次数,可以是把整个数组自增,也可以是把整个数组自减。所以方案总数即为多余操作次数 (+1)

    拓展:把 (n) 个相同物品放入 (m) 个篮子, 若

    (1) 篮子可以为空, 篮子不同:共有 (C_{n+m-1}^{m-1}) 种方案.

    (2) 篮子不可以为空, 篮子不同:共有 (C_{n-1}^{m-1}) 种方案. (挡板法)

    (3) 篮子可以为空, 篮子相同:方案递推式为 (f(n,m)=f(n-1,m)+f(n,m-1)).

    (4) 篮子不可以为空, 篮子相同:方案算式为 (f'(n,m)=f(n-m,m)).

    推广:记 (Q(n,m)) 为把自然数 (n) 拆分为 (m) 个无序的自然数的方案数.

    [displaystyle Q(n,m)=egin{cases} 1,& m=1 ext{ or } n=1,\ Q(n,n),& m>n,\ 1+Q(n,n-1),& m=n,\ Q(n,m-1)+Q(n-m,m),& m<n. end{cases} ]

    D. milktea

    已知摄入某能量物质可以减少任务完成时间,量化为物理量 (a ext{ s} cdot ext{mL}^{-1})。给定 (n) 个任务的 (a_i)、预计完成时间 (b_i)、期限时间 (d_i)。求使所有任务按时完成的最小某能量物质摄入量,保留两位小数。(1le nle 2cdot 10^5)

    注:某能量物质的摄入对任意任务完成时间的作用是同时的、普适的。(被坑)

    Too easy. 但是坑太深了……

  • 相关阅读:
    使用phpspider抓取网站文章
    laravel5中使用faker生成模拟数据
    记录一次apache服务器启动报错和解决方法
    记录一次手误删除了root用户的家目录
    Python+selenium+PIL截屏后,裁剪图片不准确(Win10)
    Git学习笔记(五)
    Git学习笔记(一)
    Git学习笔记(四)
    Git学习笔记(三)
    Git学习笔记(二)
  • 原文地址:https://www.cnblogs.com/greyqz/p/9866290.html
Copyright © 2011-2022 走看看