zoukankan      html  css  js  c++  java
  • 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的值
    
  • 相关阅读:
    SVN添加自动忽略文件.settings .project .classpath target等
    Ueditor富文本编辑器
    服务器搭建及使用
    Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分
    Oracle 查询交集、并集、差集
    Oracle sql优化工具
    移动端click时间延迟300
    腾讯地图位置展示组件用法
    百度地图 卫星 二维
    $.load()的用法
  • 原文地址:https://www.cnblogs.com/xym4869/p/13263244.html
Copyright © 2011-2022 走看看