2011-12-29 3 views
6

これは広い質問ですが、専門家の意見を知りたいと思っています。 私は1つの文書Suffix arrays – a contest approachに出くわしました。参加者は、すでに手に入るようなデータ構造で準備をしておくべきであるという意見もありました。今やオンラインプログラミングのパズルの多くの時間が来ています。だから私は、他のデータ構造/アルゴリズムは、準備ができている必要があります知っていると思います。プログラミングコンテストのアプローチ

+0

[codegolf.se]に適していますか? – mac

答えて

1

これらのチェックアウトは、@ TopCoder featured articlesです。彼らは本当にクールです。

あなたがいる間、TopCoderのプログラミングコンテストに参加することをお勧めします。向上させる最善の方法は、このようなコンテストに継続的に参加することです。&

またProject Eulerも本当に習慣性です。

0

Programming Challenges本も参考にしてください。プログラミングのコンテストで成功するために必要なトピックを提示します。online裁判官の支援を受けています。

11

私は現在約10年間競い合っていて、それほど悪くないライブラリを自分で作成しました。本当に良い競争相手のほとんどは、例えばといった伝説のブログを持っており、そこには競争上のいくつかの問題についてのアイデアが説明されています。これらを読むことはあなたを助けることができます - あなたが良いアイデアを実装し、それを格納しているのを見たら。 問題が発生したときにライブラリにアルゴリズムを追加します。私の実装が正しいかどうかを検証することができます。実装に少なくとも1つの問題があった場合、アルゴリズムを追加するだけです。ここ

は私が持っているアルゴリズムの一部とのリストである:

  • Iは、例えば交差点のために(それらに点、線、多角形、線分、円、いくつかの操作を表すクラスで巨大geometrialライブラリを持っています、点などの集合の凸包)
  • Tarjanの強連結成分のためalgorithm
  • Dinitzフローアルゴリズム
  • 二部マッチング実装
  • 分は最大フロー実装に
  • Aho-Corasic文字列探索
  • Knuth-morris-pratt文字列探索
  • Rabin-Karp文字列探索
  • 線形時間接尾辞木ukonnenのalgorithm
  • 高速累乗を使用して
  • 多項式の実装
  • の費用
  • 大きな整数の実装
  • 小数実装
  • Matrixクラスの実装
  • 素因数分解
  • Eratosthenes Sieve
  • Segment Tree
  • Hungarian algorithm
  • 2-Satアルゴリズム。このため私は上記のTarjanアルゴリズムを使用します。

BFS、DFS、Dijkstraのような最も基本的なアルゴリズムのいくつかは、私がそれらを実装していないためであることに気付くでしょう。これらのアルゴリズムは簡単にコピーして貼り付けるだけでは簡単に一般化することができず、すべてが機能します。また、5分以内に書き込むのに時間がかかります。通常は、ライブラリを実装するのが難しい、または実装する際にエラーを起こしやすいライブラリのみをライブラリに入れています。

関連する問題