プログラムレベルでの wifi 接続方法

github.com python で良さそうなライブラリがあった. コードを流して読むと大体何をやっているのか分かった. _detectDriverメソッドを呼び出す このときに各OSのWireless Driverをwhich コマンドから検索して見つかったものを選択するようにしている. 接…

Leetcode : 629. K Inverse Pairs Array

leetcode.com 問題概要 長さ n の順列を考える.反転数が k となる数列を数えなさい. 考察 一番愚直だと思われる解法は n! 通りの数列の反転数を計算し,kとなるものを数え上げるというものである. この計算量は O(nlogn*n!) であるがこれは明らかにTLEする…

第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, …

2015年 大問3 (2)

院試で面白い問題があったのでメモ. 問題文 ある集合 が与えられる.この の冪集合を と表す. 上の二項関係 を次のように定義する. の時, を求めよ. 方針 の時で考えると,以下の図のような組み合わせが得られる. 上の図から,今見ているグループと次…

ICPC 2017 Domestic : F リボンたたみ

問題文 https://storage.googleapis.com/icpcsec/icpc2017-domestic/contest/all_ja.html#section_F 概要 細長いリボンを 回畳む操作を行う.この時畳む方向を選択することができる(左から右を L,右から左を R とする). 回畳むと 個マスができる.ある特定…

ABC 067

abc

abc067.contest.atcoder.jp 久しぶりに参加した. 順位は 21th で早解きが苦手になっていると感じた. 残念なことにレーティングの更新対象ではないレーティングを持っているということすら忘れていた. 所感 A問題 A, B, A+Bに対してmod 3取ってやれば良い…

ARC 078: F - Mole and Abandoned Mine

問題概要 arc078.contest.atcoder.jp 頂点数 ,辺の数 の無向グラフ が与えられるので,頂点 1 から頂点 へのパスが一通りになるように辺を取り除く. ただし,辺を取り除くにはコストがかかるため,取り除いた辺のコストの総和が最小となるようにする. 解…

chainer 利用時のハマりどころ

chainerという機械学習のフレームワークを使っていて,いくつか引っかかったところがあったのでメモしておく. 基本はエラーメッセージさえ読んだら解決する. カスタム訓練・テストデータを用意する時 chainer.datasets.tuple_dataset.TupleDataset を使っ…

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

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

Kac's counting formula

Kac-rice formula 関連の日本語記事が無かったので自分の理解を深めることを兼ねて記事を書こうと思います.ここでは,参考文献 [1] の記述の順番通りに話を進めます.最初は Kac's counting formula から.準備実軸上の区間 \( I \) がある.ここで,次のよ…

DjangoでのSQL操作のメモ

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

predicateの記述法

c++

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がいらないのにも気づいて…

AOJ 0568 Pasta

前の状態2つ考えないといけないと思ってたけど,1つで十分だった. やっぱメモ化再帰のほうが何も考えずに書ける. dp[i][j][k] := i日目にjのパスタをk個連続で作ったとき,i日目までの条件を満たす予定の数 n日目までの条件を満たす予定の数 ∋ i日目までの条…

AOJ 0536 Shuffle

汚い ソースコード typedef pair<int, int> P; int main() { int n, m, p, q, r, x, y; while(cin >> n, n) { vector<P> cards; cards.push_back(make_pair(1, n)); cin >> m >> p >> q >> r; while(m--) { // flag : 0 => Left, 1 => Middle, 2 => Right int flag = 0; v</p></int,>…

ADLSI : 連鎖行列積

参考:アルゴリズムイントロダクション15章 動的計画法 コード中のコメントはここに書いてあることです…。 勘違いしてるかもしれません… ソースコード /* 連鎖行列積問題 演算結果はカッコ付けの順序にはよらないが、カッコ付けの順番には依存する ー>乗算回…

無線LANが不安定なときの対処

環境 OS Windows7 無線LANアダプタ Atheros AR9485WB-EG 全然Windowsとか使ったことなかったし、無線LANアダプタとかナニソレ状態だったんですが、まぁ上手く接続できたのでまとめときます。 いろんなことを試したのですが、最終的にドライバを更新すること…

AOJ 0150 Twin Prime

方針 素数判定してから愚直に求める. コード int main() { fill(is_prime, is_prime + 10001, true); is_prime[0] = is_prime[1] = false; for(int i = 2; i < 10001; i++) if(is_prime[i]) for(int j = i * 2; j < 10001; j += i) is_prime[j] = false; int…

AOJ 0135 Clock Short Hand and Long Hand

方針 実際に時計の絵を書いて適当に変換して,式出して求める。 コード int main() { int n; double h, m, hr, mr, diff, res; cin >> n; for(int i = 0; i < n; i++) { scanf("%lf:%lf", &h, &m); hr = (30.0 * h) + (m / 2.0); mr = m * 6.0; diff = abs(h…

AOJ 0244 Hot Spring Trip

方針 深さ優先探索. 特殊な切符を使って頂点nにたどり着いた時の最小コストがdict[0][n],使わなかったときdict[1][n]です. コード const int INF = 1 << 30; int N, M; int G[100][100]; int dict[2][100]; vector<int> A[100]; //n:今の場所 //c:特殊な切符 //</int>…

AOJ 0223 Stray Twins

方針 ちゃんと問題文を読まなければいけない(反省). というより,なんで座標(1, 1)から始まるんだ(憤怒). 幅優先探索です. コード const int dx[][4] = {{1, 0, -1, 0}, {-1, 0, 1, 0}}; const int dy[][4] = {{0, 1, 0, -1}, {0, -1, 0, 1}}; int X, Y; boo…

AOJ 0220 Binary Digit A Doctor Loved

方針 深さ優先探索です.全探索なので頭悪い解法かなと思いながらもたかだかO(2^12)っぽいので余裕だろーとか思いながらやりました. コード double n; double x[12]; int tmp[12]; int ans[12]; void dfs(int p, double sum) { if(sum > n || p > 12) retur…

AOJ 0207 Block

方針 自分で処理しやすいようにマップ作っていって,始点の位置にある色と同じ色を始点と接している場所から塗りつぶしていく. コード typedef pair<int, int> P; const int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1}; int w, h, xs, ys, xg, yg, n; int m[128][1</int,>…

AOJ 0191 Baby Tree

方針 メモ化再帰. memo[i][j] := j番目の肥料を直前に与え,i回目の肥料を与える時の成長度の最大値 ソースコード double g[128][128]; double memo[128][128]; int n, m; double dfs(int c, int prev) { if(c == m) return 1.0; if(memo[c][prev] != -1) re…

AOJ 0154 Sum of Cards

方針 メモ化再帰. 主に下準備で面倒くさいコードになってしまいました. コード int memo[8][1024]; struct card { int value; // 値 int resid; // 残数 card(int a, int b) : value(a), resid(b) {} }; void input(int m, vector<card>& cards) { int a, b; for(i</card>…

AOJ 0089 The Shortest Path on A Rhombic Path

方針 再帰をしろという天からの声が聞こえた気がしたので,再帰を書いたのですがなぜか通らず. ということでfor文に直して解きました. dp[i][j] := i段目j個目まで選んだときの最大の値 半分より上の時と下の時で進む方向が変わるので注意です. コード int…

K2PC Easy

結果 下らないミスして3完でしたが, しなくても3完です. A - ハンバーガー(Hamburger) 方針 問題文通りにやれば通る コード int main() { int n; int a, b, c; cin >> a >> b >> c; cin >> n; int _a = n, _b = 2 * n, _c = 3 * n; cout << (_a - a <= 0 ? 0…

AOJ 0033 Ball

友人が解いていたので再び解いてみた. 方針 全探索しました.O(2^10)かな. #include <iostream> #include <vector> #include <algorithm> #include <cstdio> using namespace std; int ball[10]; bool dfs(int i, int prevLeft, int prevRight) { if(i == 10) return true; if(prevLeft < ball[i]) </cstdio></algorithm></vector></iostream>…

Mail.appでhotmailを送受信できるようにする

ちょっとだけ詰まったのでメモ 環境 Mac OS X 10.8 受信用メールサーバ pop3.live.com 送信用メールサーバ smtp.live.com 送信用メールサーバの設定の詳細 デフォルトポートを使用からカスタムポートを使用にする(ポートは587) 認証をパスワードにする. Appl…

AOJ 0180 Stellar Performance of the Debunkey Family

方針 最小全域木。 AOJ 0072 Carden Lantern - Allen' Memoと一緒です。 const int INF = 1 << 30; int V; int cost[100][100]; int mincost[100]; bool used[100]; int prim() { int res = 0; mincost[0] = 0; while(1) { int v = -1; for(int u = 0; u < V…

AOJ 0072 Carden Lantern

方針 最小全域木問題。 プリム法で解いています 蟻本と一緒です。 const int INF = 1 << 30; int cost[100][100]; int mincost[100]; bool used[100]; int V; int prim() { int res = 0; mincost[0] = 0; while(1) { int v = -1; for(int u = 0; u < V; u++)…