zoukankan      html  css  js  c++  java
  • Kick Start 2018

    1. Common Anagrams

    Q:两个字符串A,B,问有多少对子串是字母异序词。
    A:

    1. 枚举所有子串,然后对比。
    2. 改进:添加一个map
    3. 再改进:桶排序,算每个字符出现的次数
    4. 再再改进:B[i,j]是B[i,j-1]出现次数+j对应字符数目+1

    2. Specializing Villages

    Q:Kickstartia的乡村由V个村庄组成,由双向道路连接。由于市民欣赏道路建设的多样性,没有两条路的长度相同。每条路恰好连接两个村庄,没有两条路连接同一两个村庄。新国王急于炫耀自己的进步,他想制定一个计划,让每个村庄专门生产一种食物:水果或蔬菜。如果一个村庄生产水果,那么他们就会找到一条最短的路径(可能使用多条道路)去某个生产蔬菜的村庄。同样地,如果一个村庄生产蔬菜,那么他们会找到一条最短的路径去生产水果的村庄。为了让事情顺利进行,国王想要最小化每个村庄获取非生产性食物所需的平均距离。有很多方案可以最小化这个平均距离,所以国王希望你告诉他有多少。如果一个村庄在一个计划中生产水果,而在另一个计划中生产蔬菜,那么两个计划是不同的。国王保证有可能找到一个方案,让每个村庄都能得到水果和蔬菜。
    A:

    1. 思路:如果每个村庄都能从相邻的最近的村庄拿到需要的东西,则平均距离最短
    2. 想法:Prim算法产生最小生成树。
  • 相关阅读:
    iOS初级博客的链接
    代理参数问题的思考
    数组里面的选择排序与起泡排序比较
    【C语言】02-函数
    【C语言】01-第一个c程序代码分析
    响应者链的事件分发
    UIController中view的记载流程
    UITabBar的定制
    CommandTabel_代理方法
    来到博客园
  • 原文地址:https://www.cnblogs.com/xym4869/p/13263398.html
Copyright © 2011-2022 走看看