タグ

プログラミングとアルゴリズムに関するWindymeltのブックマーク (5)

  • Algoogle

    Algorithm for Programming Contest 文字列 比較 Rolling-Hash法(Rabin-Karp法) 検索 Aho-Corasick法(複数パターン検索) グラフ 最短路 Warshall-Floyd法(全点対最短路) Dijkstra法(単一始点最短路) フロー Ford-Fulkerson法(最大流) Dinic法(最大流) 最小費用流 木 Prim法(最小全域木) Kruskal法(最小全域木) HL分解 関節点 橋 彩色数 Math 整数 剰余 高速剰余変換(FMT) 多項式 行列 積 線形方程式の解(Givens) 探索 2分探索 解析 高速フーリエ変換(FFT) 有理数(分数) 幾何 平面 点 直線と線分 円 凸包 データ構造 Union-Find-Tree Segment-Tree Segment-Tree(2次元) Binary-Index

    Windymelt
    Windymelt 2016/12/06
    競技プログラミングで使われるアルゴリズムの一覧
  • 30のプログラミング言語でFast inverse square rootを実装してみました! - プログラムモグモグ

    あなたの好きな言語は何ですか。そして、あなたの好きなアルゴリズムは何ですか。 好きな言語があると、その言語でどんな問題でも解決しようとなりがちになります。その言語を極めるのは素晴らしいことですが、その言語や似たような言語でしかコードが書けなくなったり、他の言語に対して見向きもしなくなってしまう可能性があります。 勇気を出して新しい言語にチャレンジしてみませんか?色々な言語に挑戦してみませんか? 何から始めればいいか分からない。次にどの言語を学べばいいか分からない。いま特に何も困っていない。何でも得意な言語で書けてしまう。そういう人が多いのではないでしょうか。 新しい言語にチャレンジするきっかけを作る一つの方法は、ある特定のアルゴリズムを一つ決めて、あらゆる言語で実装してみることです。解く問題が大きすぎると力尽きてしまうので、せいぜい20〜30行程度で書ける簡単なものが良いでしょう。大事なこ

    30のプログラミング言語でFast inverse square rootを実装してみました! - プログラムモグモグ
    Windymelt
    Windymelt 2016/07/25
    「比較プログラミング言語学」すてきな発想.いろんな言語を習得したい.
  • データ構造はクラスに任せた!だから、アルゴリズムはstatic関数で書くぜ!!(キリッ - みねこあ

    きむら(K)さんち経由、実はオブジェクト指向ってしっくりこないんです!。いろいろ強烈なインパクトが満載で、スルーできませんでした。 特に「メンバー関数をstatic宣言すればインスタンス宣言をしなくてもいい」ということ知ってからは、メンバー関数を従来のファンクションのように使っている。共有変数も、pubulic static宣言していまう。したがってプロパティなんて作らない。 staticを理解していない人のコードを見ると、いちいちインスタンス宣言しているので笑ってしまう。 ぎゃーっ....。人はまわりを笑っているつもりでも、逆にまわりに嗤われていますよ、絶対。 ここ以外にも突っ込みどころ満載のエントリーですので、読みながら突っ込むお手々が止まらなくって、腕がつりそう。そんな突っ込み連打なエントリーもおもしろそうですが、わたしはそういうのは上手く書けないので(性格がネチっこいから、なんだ

    データ構造はクラスに任せた!だから、アルゴリズムはstatic関数で書くぜ!!(キリッ - みねこあ
    Windymelt
    Windymelt 2015/05/06
    「クラスはサブルーチンの拡張として生まれた」という重要な指摘。
  • 出、出~~wwwww銀行員待行列解説奴~wwwwwww - モナドとわたしとコモナド

    銀行員待行列(Banker's deque)、二つのリストで構成奴~~wwwww 入奴と出奴~wwwwwwwww ↓入奴 三(^o^)ノ [(^o^)ノ, (^o^)ノ, (^o^)ノ] ヽ(^o^)三 [ヽ(^o^), ヽ(^o^), ヽ(^o^)] ↑出奴 追加は入奴にcons、取り出しは出奴にuncons奴~wwwリストなので基定数時間奴~wwwwww リスト枯渇防止の為、リストの長さに以下の条件課奴~~~wwwwww length (入奴) <= length (出奴) * 3 + 1 length (出奴) <= length (入奴) * 3 + 1 条件充足不能場合、|length (入奴) - length (出奴)| <= 1なるよう余剰分反転後短い側の末尾に結合して調整奴~wwwww時間計算量O(length (入奴) + length (出奴))必要~~~~wwww

  • その8 4分木空間分割を最適化する!

    ホーム<ゲームつくろー!<衝突判定編 2D衝突編 その8 4分木空間分割を最適化する!(理屈編) ゲーム空間に置いたオブジェクトを総当りで衝突判定する事ははっきりと非効率だと言えます。ちょっと計算してみましょう。60FPSのゲームの1フリップ約16.6ミリ秒の内衝突判定に10%の時間余裕(1.66ミリ秒)を与えられたとします。もし1000回の衝突判定に1ミリ秒かかるなら(1000回/msec)、判定回数は1660回以下に抑えないと間に合いません。総当りだとこれは58オブジェクトくらいで限界です。判定時間が200回/msecならオブジェクトはたった18個で限界。これはどう考えても節約が無いとゲームになりません。 オブジェクトの全ての位置が決まった時、自分とぶつかる可能性があるのは自分の周りのオブジェクトだけです。遠い所にある物は判定する必要すらありません。そこで「空間をある程度制限してその中

  • 1