タグ

AlgorithmとALgorithmに関するagwのブックマーク (2,333)

  • 為替と株の予測の話

    Recent Advances on Transfer Learning and Related Topics Ver.2

    為替と株の予測の話
  • NUPSC招待講演:アルゴリズムで広がる世界

    感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...

    NUPSC招待講演:アルゴリズムで広がる世界
  • A - Uncommon/みんプロ2018本戦 - D言語で競プロ

    問題概要 集合が与えられる。 各整数k = 1, 2, ..., Mについて、kと互いに素であるAの要素の個数を求めよ。 制約 解法 愚直にやると少なくともO(N*M)かかってしまうのでまとめて数え上げるなどの高速化が必要になります。 kを固定したときに、kとa_iが互いに素であるというのは、gcd(k, a_i) = 1であるというのが定義ですがこの条件はまとめて数え上げようとするときには少し使いにくいので別の同値な条件に言い換えてみます。 という感じにkを素因数分解したとします。(p_jは素数) このとき、kとa_iが互いに素であることの必要十分条件は、a_iがどのp_jでも割りきれないこととなります。逆に、kとa_iが互いに素でないことは、a_iがあるp_jで割り切れることと同値です。 この事実を使ってkと互いに素でないa_iの個数を求めることにします。その個数をn(k)とします。

  • 互いに素である a,b の組を効率良く列挙しよう

  • サンタコンペで二度全完した話

    Kaggle Tokyo Meetup #4での発表資料

    サンタコンペで二度全完した話
  • Graph Golf参加記

    理論計算機科学 (Thoerotical Computer Science) の色んな定理やアルゴリズムを紹介していきます. 基的には日語の資料がほとんどないような知見を解説していきます. 執筆者: 清水 伸高 https://sites.google.com/view/nobutaka-shimizu/home NII主催のグラフコンペティション Graph Golfに助教とM2の先輩と僕の3人チームで参加して優勝し、12/10に札幌で開かれたCANDAR'15にて講演をしました。(めっちゃ高そうな盾とかもらいました!!!)ということでGraph Golfの問題内容や背景、および僕らのとった手法の概略について適当に書いていきます。 前提知識として知っておいてほしい単語は以下の2つくらいです。 グラフ(点と点が繋がってるアレのこと) 次数(頂点に繋がってる辺の数のこと) 問題内容 自

    Graph Golf参加記
  • 典型データ構造まとめ - beet's soil

    なんか前回伸びたので 参考 hamayanhamayan.hatenablog.jp ei1333's page 宣伝 beet-aizu.hatenablog.com 以下とりあえず辞書順(そのうち典型度順にしたい) Binary Indexed Tree 一点加算、先頭からの区間和、k番目に大きい値が で可能 library/binaryindexedtree.cpp at master · beet-aizu/library · GitHub 容易に多次元に拡張が可能(実用上は2次元くらい? library/binaryindexedtree2D.cpp at master · beet-aizu/library · GitHub Binary Trie 二進数を管理するTrie木 全体にXOR、k番目に大きい値、lower_bound等が で可能 library/binarytri

    典型データ構造まとめ - beet's soil
  • 競技プログラミングは役に立たない : プログラマ・プログラミングまとめ

    >>7 いや就職はあるだろ glassdoor/careercup見ればわかる、アルゴリズム問題ばっかやぞ

    競技プログラミングは役に立たない : プログラマ・プログラミングまとめ
  • 典型テクニックまとめ - beet's soil

    いつも忘れるので整理してまとめるぞい 数え上げ Bell Number: 区別できる n 個のボールを区別できない k 個以下の箱に分割する 特にB(n,n)は n 個のボールを任意個のグループに分割する方法の数である。 Stirling Number: N個の数字をK個の非空のsubsetに分割する通り数 Montmort Number: 撹乱順列の個数 ソートして大きいものから考える 区間の端だけ求めると で求められる 候補の区間が複数ある場合は最長のものだけ考える ちょうどK個 = K個以下 - (K-1)個以下 全てのx∈Gに対しf(x)∈Hを数えるとき、y∈Hに対しf^-1(y)=xなるものを数えることもできる 多項式の係数のGCDは積に対して準同型をなす( c(P)*c(Q) = c(P*Q) sum(C(i,j)) の形は高速に求められることがある(黒白がX,Y枚あって、その

    典型テクニックまとめ - beet's soil
  • 二分探索アルゴリズムを一般化 〜 めぐる式二分探索法のススメ 〜 - Qiita

    0. はじめに 二分探索法は単純ながらも効果が大きく印象に残りやすいもので、アルゴリズム学習のスタート地点に彩られた花という感じです。二分探索というと「ソート済み配列の中から目的のものを高速に探索する」アルゴリズムを思い浮かべる方が多いと思います。巨大なサイズのデータを扱う場面の多い現代ではそれだけでも十分実用的ですが、二分探索法はもっとずっと広い適用範囲を持っています。 記事では、二分探索法のエッセンスを抽象化して、適用範囲の広い「二分探索法の一般形」を紹介します。同時に無数にある二分探索の実装方法の中でも「めぐる式二分探索」がバグりにくいと感じているので、紹介したいと思います。 注意 1: 二分探索の計算時間について 二分探索の計算時間について簡単に触れておきたいと思います。例えば「$n$ 個の要素からなるソート済み配列から目的の値を探索する」というよく知られた設定であれば、 単純な

    二分探索アルゴリズムを一般化 〜 めぐる式二分探索法のススメ 〜 - Qiita
  • 競技プログラミングにおける無向グラフ上での特殊な数え上げ問題まとめ [スペクトルグラフ理論, 行列木定理, ケイリーの公式] - はまやんはまやんはまやん

    無向グラフ上で特殊な数え上げをする場合に使えるテク集 スペクトルグラフ理論 無向グラフをあるルールで行列に変換したものを使って色んな問題を解決する 参考1 参考2 ラプラシアン行列の固有値0の個数は無向グラフでの連結成分の個数と同じ 解説 行列木定理(ラプラシアン行列の任意の余因子は無向グラフの全域木の個数と等しい) 解説 隣接行列の行列式の偶奇とそのグラフの完全マッチングの総数の偶奇が一致する 解説 ケイリーの公式 参考 n頂点のラベル付きの木の総数はn^(n-2)通りある ラベル付きなので、木の形の組合せと木の頂点に数を割り当てる組合せを全て考慮した組み合わせ数 ケイリーの定理の問題は「行列木定理+多項式補間」の組合せでも解けるっぽい(かなり不確定)(HEのColorful Spanning Treesはこの組合せなのでケイリーの定理っぽくやっても解ける?)(Stranger Tree

    競技プログラミングにおける無向グラフ上での特殊な数え上げ問題まとめ [スペクトルグラフ理論, 行列木定理, ケイリーの公式] - はまやんはまやんはまやん
  • ケイリーの公式の証明6種類 - ジョイジョイジョイ

    ケイリーの公式の証明たちの紹介です。 ケイリーの公式とは ケイリーの公式とは 頂点のラベル付きの木の総数 が であるという公式のことです。 ここで、ラベル付きであるとは、それぞれの頂点を区別するということです。 たとえば のとき、頂点を区別しない場合は長さ のパスのみの 通りですが、ラベル付きの木の場合は , , の 通りです。 証明 1 (プリューファーコード) [1] おそらく一番有名な証明です。 頂点のラベル付きの木の集合から への全単射を以下のように構成します。 最もラベルが小さい葉を木から取り除き、その葉と繋がっていた頂点のラベル を数列の最初の値とします。 続けて、最もラベルが小さい葉を木から取り除き、その葉と繋がっていた頂点のラベル を数列の 番目の値とします。 以下同様に頂点が つになるまで操作を続けます。 こうしてできた数列 が木の値となります。 この数列をプリューファー

  • TCO2014R3BH TreeDistance

    August 11, 2017 SRM, interesting 問題概要(原文) $N$ 頂点の木が与えられる.$K$ 回まで,「辺を $1$ つ選んで削除したのち,新しい辺を(木になるように)追加する」という操作が可能である. 最終的に得られる木は何通りか? 考察 まず簡単な問題を考える. $T_{1},T_{2},\ldots, T_{k}$ なる $k$ 個の木に $k-1$ の辺を追加して,$1$ つの木にしたい.得られる木は何通りあるか? 結論からいうと,$|T|$ を木 $T$ を構成する頂点の数,$N = \sum{|T_i|}$ として,$\prod{|T_i|} N^{k-2}$ である. これはケイリーの式の「$N$ 頂点のラベル付きの頂点,辺の木の数え方」から示せる. 具体的には $k$ 個の根付き森に,$1,\ldots,k-1$ 番の有向辺を追加して,$1$

  • テストの実行 - C# を使用した Thompson Sampling

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 February 2018 Volume 33 Number 2 テストの実行 - C# を使用した Thompson Sampling James McCaffrey Thompson Sampling は、多腕バンディット問題の解を求めるために使用できるアルゴリズムです。用語「多腕バンディット」は、ギャンブルに使われるスロットマシンの俗称が「one-armed bandit (片腕バンディット)」だったことに由来します。 ここに 3 台のスロットマシンがあるとします。3 台のうちの 1 台のハンドルを引くと、誰も知らない何らかの確率分布に従って、掛け金を失うか、1 ドルが払い戻されます。たとえば、あるスロ

    テストの実行 - C# を使用した Thompson Sampling
  • グラフの同型性判定

    説明 二つのグラフ g, h に対して同型すなわち頂点の置換 p であって (u,v) ∈ E(g) iff (p[u], p[v]) ∈ E(h) なるものが存在するかどうかを判定する. 今のところこの問題は NP 完全かどうかすらわかっていない(多くの人は NP 完全ではないが P でもないと信じていると思う).しかしバックトラックによる枝刈り付の全探索が多くの場合うまくいくことが実験によって分かっており,ランダムグラフに対しては O(V log V) で動くことも知られている. 以下の実装は次のアルゴリズムによる. g, h の頂点を次数の小さい順にソートする. 同じ次数のものに対して頂点を対応させてみる. それまでに対応を作った部分と整合性を確かめる. 整合していれば再帰的にチェックする. 計算量 最悪 O(V!).しかしランダムグラフを入力とした実験によると,V = 1000 く

  • 木の同型性判定のお話 - kazu0x17’s diary

    この記事は文字列アドベントカレンダー5日目の記事です. qiita.com はじめに 文字列Advent Calendarと言いつつ,木について書いていこうかなと思います. まあ,文字列ガチ勢から見れば,根付き木は実質文字列なので,このCalendarで書いてもみんな喜んでくれると信じています. あと,実際ここで紹介する手法でも木を文字列に変換してから色々やって,木の同型性を判定します. 紹介内容 今回紹介するのはタイトル等にもあるように,木の同型性判定問題を線形時間で解くアルゴリズムの紹介をします. 木のお話をする前にグラフの同型性判定問題について説明します.グラフの同型性判定問題とは,2つのグラフ$G$と$H$が与えられた時,$G$と$H$の頂点間に辺の有る無し関係を変えないような頂点の対応付けがありますか?というYes/No問題に答える問題です. 木の同型性判定問題とは,この入力グラ

    木の同型性判定のお話 - kazu0x17’s diary
  • 根付き木のハッシュ - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ

    りんごさん方式の記事 正当性を証明するにはユニークな多項式の形にしてmodを素数にしておけば、Schwartz–Zippel lemmaを使えて良いっぽい? multisetのハッシュ、0になりやすいなぁと思ったけど0になる確率がat most n/modなのか。 記事での根付き木のハッシュの取り方を日語にまとめておきます。 根付き木のハッシュ まず、深さ i に対応する乱数 を [0,mod) から取っておきます。 深さ i の頂点 v について、v 以下の部分木のハッシュは「( + 子のハッシュ)の積」として計算します。 特に、葉のハッシュ値は 1 です。 詳細は実際に記事を読んで下さい。 僕は根付き木のハッシュをどのように取っていたかの話と、それは良くなかったという話と、ならどうすれば良かったかの話をします。 計算法 まず素数p,modを用意する。 ある頂点以下の部分木ハッシュ値は

    根付き木のハッシュ - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ
  • 確率DPを極めよう - 確率と期待値の問題解説

    DP tsutaj (@_TTJR_) Hokkaido University B4 February 20, 2018 tsutaj (Hokkaido Univ.) DP February 20, 2018 1 / 54 1 2 ( ) ( ) HSI 3 4 RareItems (Hard) 5 tsutaj (Hokkaido Univ.) DP February 20, 2018 2 / 54 (Dynamic Programming) tsutaj (Hokkaido Univ.) DP February 20, 2018 3 / 54 DP DP DP tsutaj (Hokkaido Univ.) DP February 20, 2018 4 / 54 A P(A) = A : 6 1 5 P(x ≥ 5) = 1+1 6 = 1 3 A P(Ā) = 1 − P(A)

  • 最短経路の個数も一緒に数え上げる最短経路アルゴリズム - けんちょんの競プロ精進記録

    ARC 090 E - Avoiding Collision で話題になったこともあり、簡単にメモします。 最短経路を求める DP 的処理をするとき、DAG上のDP だろうと、BFS だろうと、Dijkstra だろうと、以下のような緩和処理をやっています // Edge e の緩和 int dp[MAX_V];  // dp[v] := 始点 s から頂点 v への最短経路長 if (dp[e.to] < dp[e.from] + e.cost) { dp[e.to] = dp[e.from] + e.cost; } これをちょっと変えるだけで、最短経路の数も一緒に数え上げられます。 // Edge e の緩和 int dp[MAX_V];  // dp[v] := 始点 s から頂点 v への最短経路長 int num[MAX_V];  // num[v] := 始点 s から頂点

    最短経路の個数も一緒に数え上げる最短経路アルゴリズム - けんちょんの競プロ精進記録
  • 動的計画法高速化テクニック(オフライン・オンライン変換) - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 以下の問題を考えます. 1次元の直線上に地点 $x[0] < x[1] < \cdots < x[n-1]$ がある.我々は車を用いて地点 $x[0]$ から地点 $x[n-1]$ まで移動したい.途中の地点で休憩することができるが,頻繁な休憩も過剰な運転も避けたいので,休憩を挟まずに移動する距離がおよそ $a$ 程度になるようにしたい.具体的には休憩を挟まずに距離 $b$ だけ移動したとき,ペナルティとして $(b - a)^2$ がかかるとし,全体のペナルティが最小になるように移動したい.どのようにすればよいか. この問題は以下の動

    動的計画法高速化テクニック(オフライン・オンライン変換) - Qiita