雑記

いろいろ

1週間でできるTOEFL iBT対策と受験記

はじめに ITPがコロナであるかわからず、院試のためにTOEFL ibtを受けなきゃな〜と思ってる人も多いと思うのでTOEFL ibt試験の受験記を残しておきます。 準備編 今回のTOEFLは東大のgo global gatewayでやっているTOEFL iBTかIELTSが無料で受けられるやつを…

幾何学的にCramer-Raoの定理を理解する(メモ)

Cramer-Raoの定理 準備 標本空間$\Omega = \qty{\omega_0, \dots, \omega_n}$について、その上の確率測度全体のなす多様体$S = S_{n}$を考え、$M$をその部分空間とする。 パラメタ$\xi$によって指定される$M$上の点$p\xi$における$S$の接空間$T{p\xi}S$を考…

量子情報の基礎+量子統計推測の基礎の基礎

この記事は物工/計数 Advent Calendar 2020の16日目のものです。これまでの記事は以下のリンクからご覧ください。 物工/計数 Advent Calendar 2020 はじめに 基本的な状態、測定、時間発展 まとめ 一般的な状態 まとめ 一般的な測定 まとめ 量子統計推測 参…

バブルソートと転倒数

基本 バブルソートの交換回数=転倒数 転倒数はBITを使って簡単に求められます(BITは区間和をO(logN)で求められるデータ構造です)。以下そのアルゴリズムを述べます。 与えられた数列xの要素を左から順番に見ていくことにして、要素a, b(a

PythonとC++でAtCoder黄色になった話

はじめに 先日のABC159で無事黄色になることができたので、いわゆる色変記事を書こうと思います。 黄色になりました!!!!!!!!!! pic.twitter.com/9BO5Zo0LqN— まさよし@今日も1日1AC (@masayoshi361) March 22, 2020 やったこと AtCoderを始める…

二乗の木DP

部分木のサイズに比例する大きさのdpテーブルをマージしていくタイプのDPの計算量はO(n2) void dfs(int v, int p){ sz[v] = 1; dp[v] = {INF, s[v]}; for(auto &nv:g[v]){ if(nv == p) continue; dfs(nv, v); vl merged(sz[v]+sz[nv]+1, INF); rep(i, sz[v]+…

もうバグらせない桁dp

こんな感じで書けばいいと思うよ //n = 桁数 //k = 状態数(余りか最後の桁が多い) vector<mat<ll>> dp(n+1, mat<ll>(k, vl(2))); dp[0][0][1] = 1;//0桁の時 rep(i, n)rep(j, k){ rep(d, 10){ dp[i+1][f(j ,d)][0] += dp[i][j][0];//前の状態がdp[i][j][0]でi+1桁目をdに</ll></mat<ll>…

細かいテクニック集

平均 平均を引いておき和の条件に変換するテク 例題 例題 平均の最大化・・・平均を決め打つ 桁和 繰り上がると8減る 閉路 例題 例題 変化点だけ考えるテク 例題 幾何で交点や端点だけ考えるやつ 問題の条件を緩めるテク 例題 例題 意地悪な問題文 例題 例題…

ゲーム系問題のはなし

この記事はこのスライドの受け売りなので, ちゃんと知りたい人はこっちを読んでください。 はじめに ゲーム系の問題は以下の三つに大別できます。 後ろから探索 grundy数を計算 adhocな必勝法を見つける 順番にみていきましょう 後ろから探索 単純にゲーム木…

半分全列挙のはなし

最近Atcoderの青difficulty問題を解き切ったので、それに絡めて記事を書いていこうと思います。初回は半分全列挙についてです。半分全列挙はその名の通り半分だけ状態を列挙する方法です。これだけだと何のことかわからないと思うので、例題を用いて考えてみ…

青diffまとめ

二分探索 pairs snuke the wizard nearest card game decrease sports festival 食塩水 高橋ノルム君 高橋君ボール 壁抜け 細長いお菓子 DP payment swap and flip balanced path common subsequdnce we love abc mixing experiment 徒競走 経路 塗り絵 1 難…

サピア=ウォーフの仮説のはなし

最近Ted Chiangの"Story of Your Life"を読み終えました(原著で読んだら死ぬほど時間かかった)。色々調べたら「サピア=ウォーフの仮説」というのが出てきたのでちょっと書きます。 サピア=ウォーフの仮説は認識、思考は言語に強く依存するという仮説です…

UnionFindの使いかためも

UnionFindはrootで各集合を代表させているので、root = U.find(a)で色々やる。 独立集合の数 a == U.find(a)なるaの時のみcnt+=1する 集合のサイズ U.find(a)の時のsizeを取得

木のはなし

競プロで題材にされがちな「木」についてメモしておきます。 木の性質 閉路のない連結グラフ DAG 木の用語 木の直径 もっとも遠い頂点間距離 任意の頂点を一つ選び、そこからもっとも遠い頂点を見つける。その頂点からまたもっとも遠い頂点を見つけると、そ…

C++メモ(2/20更新)

負の剰余 -15%7 = -1とか-8/3 = -2になる(絶対値の剰余に符号をつけているらしい)。 そこで、あまりは((a%b)+b)%b商は(a-((a%b)+b)%b)/bと書く(もっといい方法がアリそうだが...)。 初期化 変数を初期化しないと死ぬ

二部グラフ

二部グラフ 定義 頂点集合を二つに分割して、その中には辺がないようにできるグラフ 性質 二色に塗り分けることができる 奇閉路が存在しない(逆も言える) 木は二部グラフ 判定 bfsなどで色を塗っていき矛盾が起きなければ、二部グラフ def is_bipartite(G)…