• Kick Start 2018


    1. Yogurt

    Q:给定N份酸奶,每份都有一个截止日期A[i],过期的酸奶 不能喝。每天最多只能喝K个。问什么策略可以喝到最多份酸奶。
    A:

    1. 想法:先sort截止日期,然后往后遍历。走一个判断一个。复杂度是O(nlogn)
    2. 改进:创建一个数组,数组内是当天过期的酸奶量,第一天过期放第一天,第二天过期放第二天,>N天过期的放最后一天(桶排序)。从后往前遍历,后面的多的酸奶可以在最后一天喝完后放到前一天。复杂度是O(n)

    2. Milk Tea

    Q:给定N个二进制数,二进制数长度为P,求出一个二进制数使得其和N个二进制数的complaint之和最小。complaint=不相同的bit的个数。另外有M个constraint,求出的二进制数不能出现在constraint中。
    A:
    思路:

    1. 用一个长度为P的数组,每一位存储里面有多少个当前位为1的数;
    2. 使用DP,存入每次为0或为1产生的cost。
    best = [[0,""]] # [[cost, type]]
    for i in xrange(P):
          cur = []
          for cost, typ in best: # 对于前一位已经算完的每一种type
                cur.append([cost + cost_of_option[i], typ+'0']) # cost加上为0时产生的complaint,记录当前typ+‘0’
                cur.append([cost + N - cost_of_option[i], typ+'1']) # cost加上为1时产生的complaint,记录当前typ+‘1’
          best = sorted(cur)[:,101] # 按照cost排序,由于M最大为100,前101位至少能有一个不在constraint中
          # 在best中找到第一个不属于constraint的值
    
  • 相关阅读:
    html-----vedio标签(HTML5新标签VIDEO在IOS上默认全屏播放)
    JS---控制键盘事件
    js事件监听-addEventListener (w3c标准) 和 attachEvent(ie)
    html5 -----audio标签
    花点时间搞清top、clientTop、scrollTop、offsetTop
    vue手机端横屏竖屏切换
    spring事务
    跨域
    java8 lambda 与 stream
    vueAdmin使用动态路由时踩坑
  • 原文地址:https://www.cnblogs.com/xym4869/p/13263244.html
Copyright © 2020-2023  润新知