Blahut-Arimoto のアルゴリズム

概要 情報理論において歪みありの符号化を非可逆符号化と呼びます。非可逆符号化において、歪み度合い $D$ を変えたときの最小レート(1 symbol 当たりのビット数)*1 [bit/symbol] にはトレードオフの関係にあることが知られており、この関係はレート歪み関…

matplotlibで軸上にerrorbarをプロットする

環境 python 3.6.2 matplotlib 2.2.2 概要 matplotlibで軸上にerrorbarをプロットするとき、何も気にせずコードを書くと軸の上にerrorbarが乗らず微妙に上手くプロット出来ない。 これを回避するには、 set_on_clip と zorder を適切に使用すると良い。

pytorch の NLLLoss の挙動

Negative Log Likelihood(NLL) Lossという名前から自分が予測する関数の挙動と実際の関数の挙動が毎回異なって少し困っていたので、具体例を交えつつ挙動の確認を行う。 環境 pytorch stable (1.4) 概要 NLL Loss は対数は取らず負の符号は取り、ベクトルの…

GANのdiscriminatorでsoftplus関数が使われている理由

概要 GANで使われる Discriminator の損失計算の実装を見てみると,softplus関数が使われていることがあります. これは,sigmoid 関数で binary cross entropy を計算することと同じです.

Leetcode : 629. K Inverse Pairs Array

leetcode.com 問題概要 長さ n の順列を考える.反転数が k となる数列を数えなさい.

第12回 JOI 本選 : Tower of JOIOI

問題 長さ N の 'J' 'O' 'I'の文字しか含まれない文字列 S が与えられる. i < j < k において s[i] = 'J' and S[j] = 'O' and S[k] = 'I' または s[i] = 'I' and S[j] = 'O' and S[k] = 'I' を満たす (i, j, k) の数の最大を求める.ただし,一度使った i, …

ABC 067

abc

abc067.contest.atcoder.jp 久しぶりに参加した. 順位は 21th で早解きが苦手になっていると感じた. 残念なことにレーティングの更新対象ではないレーティングを持っているということすら忘れていた.

ubuntu上でisoファイルを書き込む

検索ワードが悪いのもあるが,あまり引っかからなかったためメモ. 環境 OS: Ubuntu 16.04 手順 標準で入っている Disk (gnome-disk-utility) を起動 認識されている USB のタブに移り パーティションイメージのリストアをクリック リストアするイメージに i…

DjangoでのSQL操作のメモ

マイグレーションの作成 python3 manage.py makemigrations マイグレーションの実行 python3 manage.py migrate マイグレーションのSQL文を吐く python3 manage.py sqlmigrate (アプリ名) (バージョン番号) データベースへのログイン python3 manage.py dbsh…

predicateの記述法

cpp

c++の理解が浅すぎるので迂闊なことは書けないですが自分へのメモ。std::sortやstd::transformを使っているとpredicateを指定する状況が自然に生まれてきます。predicateは関数オブジェクトで表すことができます。関数オブジェクトは()をオーバーロードした…

clang_completeでopencvの補完を出すようにする

vimの情報を追っていないのでclang_completeが流行っているのかも定かではないけど自分へのメモ。開発しているディレクトリに.clang_completeというファイルを作る。中身は下のような感じで。*は適宜変える。 -I/*/opencv/*/include/opencv -I/*/opencv/*/in…

Code Thanks Festival B

12月14日(日)、Code Thanks Festival B日程に参加してきました。勉強会と被ってた & テスト期間が先週まで続いていた & レポートがやばかったのでほとんど準備らしい準備はできずに参加しました。 問題 A問題 int main() { ios_base::sync_with_stdio(0); in…

2014年度 OPTiM プログラミング勉強会

12月13日土曜日に東京本社で開かれたプログラミング勉強会に参加してきました。簡単に思い出せる範囲で振り返ろうと思います。 12:30 30分早く本社に着いてしまった。近くのDOUTORで時間を潰した。 13:15 受付をすませ、担当者の指示に従って荷物を置いて席…

Codeforces Round #284 Div2

久しぶりにcodeforcesに出た。Cが幾何で愚直に線分交差判定しようとして謎バグで死んだ。普通に代入して不等式で判別するだけで解けるらしい。数学力の無さ…。 A int main() { ios_base::sync_with_stdio(0); vector<pair<int,int>> v; int n, x, a, b, ans = 0; cin >> n </pair<int,int>…

Code Festival 2014 予選A

精神的にくるものがあったので久しぶりに記事を書く。 予選開始 A問題開く。通す。 B問題開く。通す。 C問題開く。通す。 D問題開く。貪欲に上から決めていけば解けそう…。 少し悩んでも良い実装が思い浮かばない。 しょうがなく桁DPを書く。 提出する。WA..…

JOI 2012-2013 本選 問題1 電飾

反転回数は最大でも1回かと思っていたけど2回だった。反省 #include <iostream> #include <vector> #include <algorithm> using namespace std; // 前回反転させた, 前回のランプ, 場所 int dp[3][2][100001]; int main() { int n, k, ans = 0; vector<bool> a; cin >> n; for(int i = 0; i < n;</bool></algorithm></vector></iostream>…

JOI 2013-2014 予選4番

最近forで回すDPの方が書きやすい、と感じている最初、鍵を持っている人の情報を持ってしまっていて重複したケースも数え上げてしまっていて時間が結構かかった。 #include <iostream> #include <cstdio> #include <string> #include <vector> #include <map> #include <algorithm> using namespace std; const </algorithm></map></vector></string></cstdio></iostream>…

PKU 1036

少し読解困難だった. はTLEするが,の処理は外に出すことができるためとなる. dp[i][j] := i時間で扉がjの状態であるときに,来訪するgang達の価値の総和の最大値#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <vector> #include <string> #include <map> using </map></string></vector></algorithm></cstring></cmath></cstdio></iostream>…

JMC 2014 4番

pastaっぽいと思った。作問のプロだと感じた(小並感) #include <iostream> #include <cstdio> #include <string> #include <vector> #include <map> #include <algorithm> using namespace std; int dp[128][128][2]; bool m[128][128]; const int MOD = 100000; int main() { int N, M, L, a, b; cin >> N >> M</algorithm></map></vector></string></cstdio></iostream>…

PKU 1014

JOI予選が近づいてきて,JOI予選の過去問解いてない後輩を煽るためPKUのDP問題解いてます(意味不明) 問題概要 価値が1から6まであるビー玉がある.入力には各々の価値のビー玉の個数が与えられている.二人はビー玉を任意の個数選び,ビー玉の価値を二等分…

AOJ 0271: Izua Dictionary

解説 文字列をsとして愚直にシミュレーションしていくと、sを適当に入れ替えたときのi番目(1 割とゴリ押しな感じあふれてる。 ソースコード めっちゃ汚い… typedef long long i64; const i64 MOD = 1000000007; const int MAX_N = 100002; struct BinaryInde…

AOJ 0231 Dangerous Bridge

解法 高々100人の情報しかないので、座標圧縮すると最大でも200回ループ回せば終わる。 ソースコード struct P { int m; long long a, b; }; int n, from[128], to[128], sum[128]; P p[128]; int main() { while(scanf("%d", &n) && n) { string ans = "OK"…

AOJ 0261 Mayan Crucial Prediction

訳 日本語なので省略 解説 マヤ暦→西暦 最大でも2016000日を処理するので愚直にループを回せばいける。 あと((((b*20+ka)*20+t)*18+w)*20+ki)とかで求めようとするとバグ埋め込む原因になった(自分の場合は) 西暦→マヤ暦 先に閏年を求めるのでy-2013回ルー…

Codeforces Round #168 (Div. 2) B. Convex Shape

訳 n*mのグリッドが与えられ、1マスごとに黒色か白色の情報が与えられる。以下の条件を満たすとき凸の図形である。 黒色のマスから隣接する黒色のマスに移動することができ、移動する向きを2回以上変えずに全ての黒色のマスに辿り着くことができる。 与えら…

AOJ 0263 Beat Panel

解法 パネルの状態を持ってメモ化再帰。 dp[i][S] := 今譜面iを見てパネルの状態Sのときの最大の獲得得点 勝手に前回使った運指は使わない(SRM?か何かでそんな感じの問題があったような…)という条件を付け足したことで冷え。 パネルの状態はbitとかvectorと…

AOJ 0069 Drawing Lots II

方針 制約から全通りシミュレーションしても余裕. 左か右に横線がある場合は置けないので注意する(このコードはテストケースが弱いから通ってしまったが) ソースコード #define FOR(i, a, b) for (int i = (a);i < (b); ++i) #define REP(i, n) FOR(i, 0, …

AOJ 0531 Paint Color

解法 座標圧縮→dfs(bfs)で領域を埋めていく 座標圧縮しないと、配列でベニヤ板の領域分取ることはできない ソースコード #define FOR(i, a, b) for (int i = (a);i < (b); ++i) #define REP(i, n) FOR(i, 0, n) int w, h, n; int X, Y; bool field[1024][102…

JOI 2012-2013 問5 Fish

意外と簡単だったので悲しい。 しかし、一瞬だけ見て多倍長?と思って問6にいったのはマズかった。 #define FOR(i, a, b) for (int i = (a);i < (b); ++i) #define REP(i, n) FOR(i, 0, n) typedef long long LL; LL cube[128][128][128]; void create(vector<LL></ll>…

JOI 2012-2013 問3 Signboard

int main() { int res = 0; int n; string s, a; cin >> n >> s; for(int i = 0; i < n; i++) { cin >> a; bool f = false; for(int j = 0; (j < a.size()) && !f; j++) //始点を決める if(a[j] == s[0]) // 間隔を決める for(int k = 1; (k < a.size()) && …

AOJ 0561 Books

反省 dp[i][j][l] := 今までにi冊売り、今見ているジャンルjの本をl個売った時の最大の買取価格 最初はこれでDPしようとしたが、メモリが確実に収まらないのは自明だし(それでも頑張って削減して通そうとしたが)、書いている途中でlがいらないのにも気づいて…