Facebook黑客杯是由Facebook组织的年度算法编程竞赛。无论是学生、专业人士还是专家,它都吸引着来自世界各地的众多编程爱好者。顶尖竞争者有资格获得Facebook的软件开发者职位面试电话。
过程是什么?
Facebook黑客杯以其不同的评判环境和各种各样的问题而闻名。它在许多回合中进行,算法挑战的难度不断增加。
奖品是什么?(每年可能有所不同)
25名入围者将获得以下奖项(美元):
- 第一名:20000美元
- 第二名:10000美元
- 第三名:5000美元
- 第四名:3000美元
- 第五名:1000美元
- 第6-10名:500美元
- 第11-15名:300美元
- 第16-25名:200美元
组织于年月 一月 Facebook黑客杯分四轮进行:
- 资格赛: 是最简单的一轮,其中至少有一个问题需要成功解决才能进入下一轮。这一轮持续72小时。
- 第一轮: 被选中的候选人参加为期24小时的第一轮比赛,必须获得至少一定数量的分数(每年据此决定),才能有资格参加第二轮比赛。这一轮比资格赛相当困难。
- 第二轮: 从第一轮中选出的候选人将提前参加第二轮,并参加3小时的形式竞赛。前200名参与者晋级第三轮,前500名参与者将获得Hackercup T恤。
- 第三轮: 前200名参赛者参加这场3小时的比赛,前25名有资格进入现场决赛。从现在开始,习题集变得很难。
- 现场决赛: 来自世界各地的前25名参与者在Facebook总部争夺Facebook黑客杯的冠军和奖杯。这些问题非常具有挑战性,足以让参赛者汗流浃背。
而领导层的第一人获得了头衔,并沐浴在荣耀之中。
格式与环境
Facebook黑客杯的评选形式与ACM-ICPC或IOI等其他年度编程比赛截然不同。
- 比赛开始时,用户需要登录网站。
- 登录后,他们会看到问题集。在你认为你已经解决了一个问题并且确信它的正确性之后,你必须 下载 输入测试文件。
- 一旦输入测试文件被下载,一个6分钟的计时器就开始了,在这段时间内,你需要在你的代码上运行输入测试文件并形成一个测试文件。在6分钟内,您需要提交代码和输出文本文件。
- 您可以多次提交,只有最后一次正确提交的内容才会用于评估。
- 一旦计时器过期,您将无法再次提交该问题的解决方案。时间惩罚是问题提交次数的总和。
如何准备?
Facebook Hacker cup以其创新性和令人挠痒的算法挑战而闻名。更倾向于数学和各种概念的组合黑客杯通过不同的回合测试知识、实现、准确性、速度、概念性和几乎所有东西。
你需要快速才能在接下来的回合中生存,需要创新才能在最初的长时间回合中生存。
这些都是应该彻底解决的主要问题,因为问题通常来自一个以上的主题。
- TopCoder二进制搜索
- 二进制搜索
- 无处不在的二进制搜索 –掌握离散和连续二进制搜索。
图算法
- 广度优先搜索(BFS)
- 深度优先搜索(DFS)
- 从源到所有顶点的最短路径**Dijkstra**
- 从每个顶点到其他顶点的最短路径**Floyd Warshall**
- 最小生成树**Prim**
- 最小生成树**Kruskal**
- 拓扑排序
- 约翰逊算法
- 图中的关节点(或切割顶点)
- 图中的桥
字符串算法
学习字符串的库函数实际上非常有用(C++:参见 这 和 这 , Java中的字符串 ).
动态规划
动态规划非常重要,可以与其他各种主题结合使用。一些不同类型的DP概念包括:
经典DP
计算几何
总而言之,Facebook黑客杯是一场极具挑战性的比赛,一个人需要大量的训练和毅力,所有的标准话题都需要刻划和理解。
练习是唯一的方法!
额外要点:
- 练习 联合部队 (特别是 健身房 (a)及 TopCoder竞技场 .这将真正有助于基本理解。
- Facebook黑客杯的问题与Codeforces和Topcoder有不同的风格,最好的比较可能是 谷歌全球编程挑战赛 他们有相似的格式。
- 浏览之前的Facebook–HackerCup问题,熟悉竞赛的形式。
本文由 Yash Kodesia与极客团队合作 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。