• Kick Start 2018


    1. Even Digits

    Q:给一个数,每次可以加一或减一,求最少操作次数,使得最后这个数的十进制表示中每个位都是偶数。
    数据范围:
    (1≤T≤10^5),
    (1≤N≤10^{16})
    Sample:
    Input
    4
    42
    11
    1
    2018

    Output
    Case #1: 0
    Case #2: 3
    Case #3: 1
    Case #4: 2

    A:
    小数据集直接往上或往下加减i,碰到就行;
    大数据集可以按照以下方法:


    但遇到9比较难处理。遇到9需要进位,但要保证左边,需要进2.如果遇到左边是8,可以一直往上变成0.

    2. Lucky Dip

    Q:有一个长为n的数组,从中随机抽取一个数出来,有K次机会放回重抽,求采取最佳策略下取出来的数的期望。
    Limits
    Memory limit: 1GB.
    (1 ≤ T ≤ 100).
    (1 ≤ V_i ≤ 10e9).
    (1 ≤ N ≤ 2 * 10e4).
    Small dataset (Test set 1 - Visible)
    Time limit: 20 seconds.
    0 ≤ K ≤ 1.
    Large dataset (Test set 2 - Hidden)
    Time limit: 60 seconds.
    0 ≤ K ≤ 5 * 10e4.

    A:
    这个解决方案将同时传递小数据集和大数据集
    期望值落在范围[s, l],其中s是数组中最小的值,l是数组中最大的值。我们希望找到我们可能得到的最大的期望值,如果我们允许k返回。
    设E[k]表示可返回k次的最优期望值,则
    如果k = 0,我们知道期望值是这个整数数组的均值。
    如果k = 1,我们可以返回我们选择的值得到期望值E[0],或者我们对集合A[i]中大于E[0]的值求和,对于小于等于E[0]的值我们对E[0]进行多次求和

    总体来说,如果你能丢掉N次,最佳的策略是:

    • 如果你得到的值>=E[k-1],你就保留它;
    • 如果不是,就丢掉它

    例如,给定A = {4,3,2,1}, E[0] = (4 + 3 + 2 +1)/4 = 2.5,
    E[1] =(4 + 3 + 2.5 + 2.5)/4 = 3,这里可以看到2和1都小于2.5
    这很容易推广到k = k的情况
    对于k = 2,我们有
    E[2] = (4 + 3 + 3 + 3)/4 = 3.25
    它给出了下面的递归式

    E[0] = SUM(A[i]) / N;
    E[k] = SUM(max(A[i], E[k-1]))   for k > 0
    

    可以考虑,先排序,然后用二分查找需要保留和丢弃的临界点,这样时间复杂度为(O(NlogN+KlogK))

    3. Scrambled Words

    Q:给长为一个n的字符串,还有L个字符串,求这L个字符串中有多少个字符串的的变形体在长字符串中。一个字符串的变形是除了头尾两个字符不可改变之外,其他字符可以任意重排。
    Limits:
    1 ≤ T ≤ 20.
    No two words in the dictionary are the same.
    Each word in the dictionary is between 2 and 105 letters long, inclusive.
    The sum of lengths of all words in the dictionary does not exceed 105.
    S1 and S2 are lowercase English letters.
    0 ≤ A ≤ 1e9.
    0 ≤ B ≤ 1e9.
    0 ≤ C ≤ 1e9.
    1 ≤ D ≤ 1e9.
    Small dataset
    1 ≤ L ≤ 1000.
    2 ≤ N ≤ 1000.
    Large dataset
    1 ≤ L ≤ 20000.
    2 ≤ N ≤ 1e6

    A:

    1. 自己的想法:设置一个map,map的key是初始字符,value是个ArrayList,ArrayList里面存三位数组,分别是结束字符,长度和hashcode。
    2. 判断两个word相等:先判断首字母和尾字母是否相等,再看内部频率;
    3. 维护频率数组,进行hash优化
  • 相关阅读:
    【报错】ES报错找不到Gson类
    【报错】Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
    【JUC】AtomicInteger源码
    【Netty】Netty服务启动源码
    【Netty】Netty实现简单RPC
    【Netty】心跳机制
    【Netty】Netty模型
    【Netty】Reactor模型
    C# 好狂的多线程呀
    select使用
  • 原文地址:https://www.cnblogs.com/xym4869/p/13231268.html
Copyright © 2020-2023  润新知