zoukankan      html  css  js  c++  java
  • AtCoder Beginner Contest 178 题解

    A - Not

    题面

    直接输出 (1-x) 即可。

    B - Product Max

    题面

    发现答案一定是在 (a imes c)(a imes d)(b imes c)(b imes d) 中出现。

    输出它们四个中的最大值即为答案。

    C - Ubiquity

    题面

    容斥一下,答案为 总方案数 - 0 或 9 没有出现过的方案数

    后面一块可以继续容斥,为 0 没有出现的方案数 + 9 没有出现的方案数 - 0 和 9 都没有出现的方案数,也就是 (2 imes 9^n-8^n)

    最终答案即为 (10^n-2 imes 9^n+8^n)

    D - Redistribution

    题面

    (dp_{i,j}) 表示长度为 (i) 的序列和为 (j) 的方案数。

    转移时枚举第 (i) 位填的是数 (k),那么转移就是 (dp_{i,j+k}+=dp_{i-1,j})

    理论上会 TLE,可以开 O2 艹过去或者用前缀和优化(?)。

    贴一下官方题解

    代码


    upd:

    发现其实不要这么复杂……

    (dp_i) 表示和为 (i) 的方案数。

    枚举最后一位填的是什么,转移就是 (dp_i=sumlimits_{j=3}^i dp_j),边界 (dp_0=1)

    答案即为 (dp_s)

    E - Dist Max

    题面

    好题啊。

    首先我们要知道,平面上两点 ((x_1,y_1))((x_2,y_2)) 的曼哈顿距离等于 ((x_1-y_1,x_1+y_1))((x_2-y_2,x_2+y_2)) 的切比雪夫距离。这个可以通过去绝对值来证明。

    ( exttt{P.S.}) 切比雪夫距离:(max(|x_1-x_2|, |y_1-y_2|))

    也就是 (max(|x_1-y_1-(x_2-y_2)|,|x_1+y_1-(x_2+y_2)|))

    不妨设 (a_i) 表示 (x_i-y_i)(b_i) 表示 (x_i+y_i)

    那么我们就是要求 (max(|a_1-a_2|,|b_1-b_2|))

    也就是 (max(|a_i-a_j|,|b_i-b_j|)=max(max a_i-min a_i,max b_i-min b_i))

    这些都可以直接求,复杂度 (mathcal{O}(n))

    官方题解

    std

    当然也可以分类讨论拆绝对值,也是这样做的 233

    F - Contrast

    题面

    贪心。

    有几种方法,这里直接贴别人的代码了 TNT。

    官方题解

    方法 1

    方法 2

  • 相关阅读:
    RedisTemplate实现事物问题剖析和解决
    PO BO VO DTO POJO DAO概念及其作用(附转换图)
    Java 应用程序设计规范
    Java web url 规范
    Java 中 Map与JavaBean实体类之间的相互转化
    使用Java 8中的Stream
    [转]http://lua-users.org/wiki/LpegTutorial
    [转]LUA元表
    LPEG
    [转]LUA 学习笔记
  • 原文地址:https://www.cnblogs.com/xsl19/p/13663969.html
Copyright © 2011-2022 走看看