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

    1. Product Triplets

    Q:给定一组整数数组,找出满足a*b=c的三元组的个数。
    A:

    1. 特殊值0,1特殊对待,两个或三个0
    2. 数组排序后,如果x<y<z且三者都非零,一定有A[z]>A[x],A[z]>A[y],所以只要枚举x,y,在[y+1,N]的范围内寻找A[x]*A[y]是否存在即可。

    2. Combining Classes

    Q:每个班级的分数是([L_i,R_i]),区间内的分数有且只有一个。一共N个班级,有Q个查询,问第K高的分数是多少。
    A:

    1. 小数据集用二分查找
    2. 横坐标是值,纵坐标是个数,算面积

      离散化分数,计算数据和,二分查找范围,计算结果。考虑边界问题。

    3. Cave Escape

    Q: 给一个矩阵,标记为obstacle的点不可以经过,trap的点经过会损失对应的energy。给定起点,终点和初始能量,问经过最优路径从起点到终点剩余的energy最大是多少。
    A:
    首先,不考虑能量够不够,每个状态直接用DFS/BFS可以得到一个最终能量值(E[s]),这个状态下能够到但是不在状态里的陷阱集合(adjTrap[s]),还有这个状态能不能出去(isAble[s])
    这三个东西出来之后就可以DP了,设f为状态s可以取得的最大能量:

    • (f[s])初始为-1
    • 如果(isAble[s]==true),那么(f[s]=E[s])
    • 接下来遍历(adjTrap[s])里的每一个陷阱i,如果当前能量(E[s])能通过这个陷阱i,那么可以尝试通过,所以状态转移方程为:(f[s] = max(f[s],f[s|(1<<i)]))
  • 相关阅读:
    javascript 的继承实例
    [转载]编写高性能js
    弹出菜单
    xml xpath dta笔记
    jquery 学习笔记
    公用的css
    谷歌主页动画效果——利用视距暂留原理
    javascript 新知识
    ie6/7 bug大全
    javascript 原生实现 jquery live/delegate
  • 原文地址:https://www.cnblogs.com/xym4869/p/13288381.html
Copyright © 2011-2022 走看看