📜  如何为Facebook黑客杯做准备?

📅  最后修改于: 2021-06-26 12:43:59             🧑  作者: Mango

Facebook黑客杯是Facebook举办的年度算法编程竞赛。无论是学生,专业人士还是专家,它都吸引了来自全球各地的众多编程爱好者。顶级竞争者有资格获得来自Facebook的软件开发人员职位面试电话。

如何为facebook hackercup做准备

程序是什么?

Facebook Hacker杯因其用于判断的不同环境和各种问题而特别出名。它在许多回合中进行,其中算法挑战的难度不断增加。

注册链接

奖品是什么?(每年可能有所不同)

  • 第一名:10,000美元
  • 第二名:$ 2,000 USD
  • 第三名:$ 1,000 USD
  • 第4-25名:$ 100 USD

1月组织的Facebook黑客杯分4轮进行:

  1. 资格回合:是最简单的回合,其中至少一个问题需要成功解决才能在下一回合中进行。此回合持续72小时。
  2. 第一轮:选定的候选人参加第一轮,该轮持续24小时,并且必须获得至少一定数量的分数(每年相应地决定)才有资格进入第二轮。此轮比资格轮相当困难。
  3. 第2轮:从第1轮预选赛中选拔的候选人参加第2轮并参加3小时制比赛。前200名参与者进入第三轮比赛,前500名参与者获得了Hackercup T恤。
  4. 第三回合:前200名参赛者将参加这场3小时格式的竞赛,前25名将有资格参加现场决赛。从现在开始,问题集变得越来越棘手。
  5. 现场决赛:来自全球的前25名参与者争夺在其总部赢得Facebook黑客杯的头衔和奖杯。问题颇具挑战性,足以使参赛者从头到脚都汗流sweat背。

排行榜上的第一人称号和荣誉获得了荣耀。

格式和环境

Facebook黑客杯的评审格式与其他年度编程竞赛(例如ACM-ICPC或IOI)完全不同。

  • 比赛开始时,要求用户登录网站。
  • 登录后,他们会看到问题集。当您认为已解决问题并确定其正确性之后,必须下载输入测试文件。
  • 下载输入测试文件后,计时器将立即开始6分钟的计时,并且需要在该时间段内通过代码运行输入测试文件并形成测试文件。在6分钟之内,您需要同时提交代码和输出文本文件。
  • 您可以提交多次,并且只有最后一次正确提交的内容会用于评估。
  • 计时器到期后,您将无法再次提交该问题的解决方案。时间损失是问题提交时间的总和。

如何准备?

Facebook黑客杯因其创新和令人挠痒的算法挑战而特别出名。更加倾向于数学和各种概念的结合黑客杯通过不同的回合来测试知识,实现,准确性,速度,概念性以及几乎所有内容。

您需要快速才能生存更多的回合,并需要创新才能生存最初的长时间回合。

这些是应彻底解决的主要主题,因为通常会从多个主题组合中提出问题。

数论

  1. Euclidian和扩展Euclidian算法
  2. 模块化算术和模块化逆
  3. 素数生成(筛和分段筛)
  4. 费马定理
  5. 欧拉Totient函数
  6. 米勒·拉宾素数检验
  7. 中国余数定理
  8. 卢卡斯定理。

贪婪算法

  1. 活动选择问题
  2. Kruskal的算法
  3. Prim的算法。

二进制搜索

  1. TopCoder二进制搜索
  2. 二元搜寻
  3. 无所不在的二进制搜索–了解离散和连续的二进制搜索。

数据结构

  1. 链表
  2. 二叉搜索树
  3. 二叉索引树或Fenwick树
  4. 段树(RMQ,范围总和和延迟传播)
  5. 红黑树
  6. 散列

广泛的数据结构清单

图算法

  1. 广度优先搜索(BFS)
  2. 深度优先搜索(DFS)
  3. 从源到所有顶点的最短路径** Dijkstra **
  4. 每个顶点到另一个顶点的最短路径**弗洛伊德·沃舍尔**
  5. 最小生成树** Prim **
  6. 最小生成树** Kruskal **
  7. 拓扑排序
  8. 约翰逊算法
  9. 图形中的关节点(或切点)
  10. 图中的桥梁

所有图算法

字符串算法

实际上,学习String的库函数非常有帮助(C++:请参见Java的String)。

  1. KMP算法
  2. 拉宾·卡尔普
  3. Z的算法
  4. Aho Corasick字符串匹配
  5. 后缀数组
  6. 特里
  7. 有限自动机

动态编程

  1. 动态编程– GeeksforGeeks
  2. 动态编程– Codechef

动态编程非常重要,可以与其他各种主题融合在一起并提出问题。 DP概念的一些不同类型是:

经典DP

  1. 最长公共子序列
  2. 最长递增子序列
  3. 编辑距离
  4. 最小分区
  5. 覆盖距离的方法
  6. 矩阵中的最长路径
  7. 子集总和问题
  8. 游戏的最佳策略
  9. 0-1背包问题
  10. 装配线调度

所有DP算法

计算几何

  1. 凸包算法
  2. 几何算法

总而言之,Facebook黑客杯是一项非常具有挑战性的竞赛,一个人需要大量的培训和毅力,所有标准主题都需要蚀刻和理解。

练习是唯一的方法!

加分:

  1. Codeforce (特别是GYM部分)和TopCoder Arena上进行练习。这将真正有助于基本了解。
  2. Facebook Hacker Cup的问题与Codeforces和Topcoder的风格不同,可能最好的比较是与格式相似的Google Code Jam。
  3. 浏览以前的Facebook – HackerCup问题,并熟悉比赛的形式。

如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。