zoukankan      html  css  js  c++  java
  • AtCoder Beginner Contest 192 完整题意+题解

    题解

    A

    给你一个数 (X)(1le Xle 10^5)),求最小的 (Y>X) 使得 (Y)(100) 的倍数。

    直接判定即可。

    B

    给一个字符串,判断是否满足奇数位上是小写字母,偶数位上是大写字母。

    也可以直接判定。

    C

    称一次操作为将一个数赋值为这个数的各个数字按照从大到小的排列顺序得到的数,减去从小到大排序得到的数。

    给定 (N)(1le Nle 10^9)),求 (K)(1le Kle 10^5))次操作后的数。

    直接暴力模拟 (O(Klog^2 N)) 即可。

    https://atcoder.jp/contests/abc192/submissions/20296501

    D

    给定整数 (X)(1le Xle 10^{60}))和 (M)(1le Mle 10^{18})),设 (d)(X) 最大的一位数。

    求对于所有的 (a>d,ainmathbb{Z})(a) 进制数 (X) 所代表的数的个数,同时 ((X)_ale M)

    首先,对于所有 (len(X)>1) 的情况,(a) 的个数与题意中所求一一对应。而 (len(x)=1) 只需特判。

    注意到这样的 (a) 一定在一个连续区间内,左端点固定,则可以二分右端点求得数量。

    同时,long long 相乘可能会爆,要用 __int128(AtCoder 支持) 或龟速乘判。

    https://atcoder.jp/contests/abc192/submissions/20318733

    E

    (N)(1le Nle 10^5))个点,(M)(1le Mle 10^5))条无向边。设初始时刻为 (0),则进入某条边的时刻必须为 (xK_i)(xinmathbb{N}),可以在节点停留),消耗时间为 (T_i)(1le K_i,T_ile 10^9))。求 (X)(Y) 的最短路,不连通则输出 -1

    注意到时间仍然是越短越好,满足 dijkstra 的基本条件,直接跑,改一下松弛条件即可。

    https://atcoder.jp/contests/abc192/submissions/20326035

    F

    (N)(1le Nle 100))个数 (A_i)(1le A_ile 10^7)),要求选出若干个数(假设 (x) 个,分别为 (A_{a_1},A_{a_2},cdots,A_{a_x})),要求 (sum A_{a_i}equiv Xpmod{x})(10^9le Xle 10^{18}))且 (dfrac{X-sum A_{a_i}}{x}) 最小,求出最小值。

    枚举所有可能的 (x),分别进行 DP。

    (f_{i,j,k}) 为前 (i) 个数选了 (j) 个,(mod{x}) 的余数为 (k)(sum A_{a_i}) 最大值,则:

    [f_{i,j,k}=max{f_{i-1,j,k},f_{i-1,j-1,(k-a_i)mod{x}}+a_i} ]

    总复杂度 (mathcal{O}(n^4))

    https://atcoder.jp/contests/abc192/submissions/20345725

    评价

    可以说是一场比较中规中矩的 abc 了。总体难度不是特别大。

    D 是卡得最久的一题,各种边界讨论比较繁琐,但也不是很麻烦。F 是赛时唯一没有 A 的题,赛后发现是初始值和特判的问题。


    非常感谢您读完此文章。

    如果您喜欢这篇文章,请点一个赞支持一下博主。

    如果您对此文有意见,欢迎在评论区留下你的看法,5ab 会尽力达到。

    如果您真的不喜欢这篇文章,也请不要喷,5ab 欢迎私信反馈意见。

  • 相关阅读:
    每日软件进度报告—12月10日
    每日软件进度报告—12月9日
    每日软件进度报告—12月8日
    每日软件进度报告—12月7日
    每日软件进度报告—12月6日
    每日软件进度报告—12月5日
    每日软件进度报告—12月4日
    每日软件进度报告—12月3日
    四则运算1
    对苹果自带输入法的测评
  • 原文地址:https://www.cnblogs.com/5ab-juruo/p/abc192-statement_solution.html
Copyright © 2011-2022 走看看