びったんびったん

ユーザビリティ・プログラミングについて。

Topcoder Marathon TypesetterArt Gallery

ビームサーチは DP

この記事は Competitive Programming (1) Advent Calendar 2018 - Adventar の 6 日目です。 5 日目の記事は armeria_betrue さんの 解説記事のはなし - ARMERIA です。 7 日目の記事は xuzijian629 さんの Implicit Treap - 競プロ練習記録 です。 ビームサ…

Topcoder Marathon KnightsAndPawns

https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=17225&pm=14994 焼きなましに飽きた1点をのぞけば、おもしろい問題だったと思います。 方針 空のボードにナイトをごく少数ランダムに配置して初期状態とする。 ナイト数を固定…

Topcoder Marathon Match 100 SameColorPairs

問題文 おつかれさまでした。99.5%のケースで最適解が出ています。盤面を分割して順に、焼きなまして消す…次を焼きなまして消す…を繰り返しました。最後2ブロックを多スタート。 pic.twitter.com/yERLy1TekY— hakomo (@hakomof) 2018年4月26日 方針 私は焼き…

Yandex Algorithm 2018 Optimization track. Round 2 News freshness

問題文 暫定3位でした。険しい。問題自体はとてもおもしろかった。 greedy 巡回するサイトを1つずつ順番に決めていってパスをgreedyにつくります。パスがつくり途中だと2週目以降にいつどのサイトを訪れるかが定まらずスコアに加味できないので困ります。そ…

入力バイナリから画像を作成するプログラムを公開しました

圧縮する入力バイナリは2次元のradianceのデータなようです。 このデータの画像はnetCDFデータのビューアから見ることができるようで、見るためにはnetCDFデータをビューアで開く、Rad行をダブルクリック、Create a 2D plotを選択します。 とりあえず入力バ…

北大日立マラソン第1回

Hokkaido Univ.& Hitachi 1st New-concept Computing Contest 2017 - AtCoder スタートダッシュ芸人してました 初日 焼きなましはすぐにわかったので軽く高速化・温度調整したやつを出した(CodinGameにも出たかったので巻いてた(結局出なかったが 初日にや…

WindowsでPython2/3の共存が壊れたらPYTHONHOMEを削除する

Windowsではpyとpy -2でPython2/3の共存ができますが、再インストールやマイナーバージョンのアップグレードなどで以下のように壊れることがあります。 >py Fatal Python error: Py_Initialize: unable to load the file system codec File "C:\python27\lib…

MM94 ConnectedComponent

問題文 https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16958&pm=14678 基本方針 順列の左端N個が確定しているとすると順列の後ろにどんな値を足しても左上N×Nの領域の値は変わらない。なのでこの確定領域の最良コンポーネ…

TCO17MMR2 AbstractWars

問題文 https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16928&pm=14599 ヒューリスティクス的なアイデアが色々考えられて今までで一番好きな問題。 MMおつかれさまでしたビームサーチで速攻、序盤に奪う基地の探索中終盤は100…

Chokudai Contest 3 考えたこと

問題文 A: ○×ブロック - Chokudai Contest 003 | AtCoder 5864点18位でした。 . + -ブロックひとつを異なる種類の. + -ブロックに変えてスコアが上がるようなら保持、下がるようなら元に戻す山登りをした。 遷移でスコアが変わらなくても、連結ブロック数の…

MM92 考えたこと

問題文 https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16857&pm=14485 MMの方針誤差ゼロの焼きなましをひたすら高速化。近傍はライトを1つ動かす。最後に極近傍山登りで微調整(こちらも誤差ゼロ)試行回数は15万回~35…

Codeforces Marathon Round1 Online Exam

問題文 http://codeforces.com/contest/684/problem/A2 タイトルのマラソンで考えたことが書いてあります。過程を書いたので長いです。 暫定スコアは77261点、暫定順位は3位でした!がんばった! 69000点 2つのアイデアが必要でした。 1.ビッ…

MM89 考えたこと

マラソン参加3回目、がっつり参加したのは初めてだけれど楽しかったです。 暫定 72.34点 15位 Python 問題文 https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16494&pm=10967 全部Sにしたら100%になるよねーと思って上か…

Laravel 5 のデバッグ出力

Laravel 5 でデバッグ出力する3つのやり方についてまとめる。 ログファイルに書きだす 2通りの書き方がある。 ヘルパー関数 logger(), info() 1, 'b' => 2, 'c' => 3]; logger($message); info($message); // logger()->notice($message, $context); // l…

CoffeeScript と Phaser でゲームつくったよ!

ゲーム インビジゴースト - 見えざる敵の居所を探り、迎え撃て! ソース hakomo/InvisibleGhost · GitHub 遊んでみてね。 ゲームフレームワーク Phaser を使っていて思ったことを書きたい。

Atom を設定した

Atom の正式版公開当初にさわって以来ごぶさただったのですが、最近話題をちらちら見るのでさわってみたらよかったので設定した。 Atom は主に CoffeeScript, Stylus, Slim, Markdown, メモを書くのに使うと思う。たまに Python, Ruby も。 Sublime からの乗…

ゲームを作るかもしれない

ゼロからゲームが作られていくのがわかる開発ブログにしたい。昔はゲームばかり作っていて完成したためしがないんだけど、今なら完成させられる気がする。 作るゲームはローグライクライクです。アイデアを思いついて仕様を考えているところなので、次の更新…

npm メモ

npm のコマンドを目的別にまとめています。 npm は gulp にしか使っていません。 コマンドにはエイリアスがたくさんあるので使いやすいものを選びましょう。 npm のコマンドについて調べる npm-index パッケージを探す npm install プロジェクトにパッケージ…

Fit Win の新しいバージョンを公開しました!

ここでは技術的なことを書きます。 Fit Win の詳細は下記 URL をご覧ください。 Fit Win - ウィンドウを移動・サイズ変更するフリーソフト 開発言語は C#/Slim(HTML5)/Stylus(CSS3)/CoffeeScript(JavaScript) です。ただ本ソフトは Web アプリではありません…

マウスカーソルには2つの意味がある

状態を表すマウスカーソル PC がフリーズしているときの待ちアイコンや、ペイントソフトの鉛筆や消しゴムアイコンのことです。これらのアイコンは PC やソフトの状態に応じて変化し、ユーザがマウスアクションするとどのような効果が起こるのかユーザに伝え…

C# で SetWindowsHookEx() を使うと Form がフリーズするのをごり押す

C# でマウスグローバルフックを使うと Form がフリーズします。 c# - SetWindowsHookEx and clicking minimize/maximize/close buttons on form freezing - Stack Overflow C# から直接呼び出しても、 C++ で DLL を作って呼び出してもフリーズしたので C# …

Undo の設計 - 元に戻す・戻さない操作の違い

例えばテキストエディタに文字を入力してから元に戻すと、入力した文字は消える。しかしテキストエディタでスクロールしてから元に戻しても、スクロールは戻らない。当たり前かな?じゃあコードの折りたたみはどうだろう?答えはどちらもで、 Visual Studio …

Windows 10 未満のコマンドプロンプトを Ctrl + V で貼り付け

Windows 10 でコマンドプロンプトが使いやすくなるみたいですね。 Windows 10 ほどではありませんが既存の Windows のコマンドプロンプトを Ctrl + V で貼り付けができるようにし、少しだけ使いやすくする方法を紹介します。 汎用キーバインディング変更ソフ…

Form.Close() メソッドの CloseReason は UserClosing

Form アプリケーションがどのように終了する(した)のかは CloseReason で知ることができる。 CloseReason 列挙体 (System.Windows.Forms) これの注意点として CloseReason が UserClosing になるのはウィンドウの閉じるボタンや Alt + F4 で終了するときだ…

ShowWindow(hWnd, SW_RESTORE) は Visible プロパティを更新しない

やりたいこと 最小化されていてかつ非表示なフォームがある。これを表示し元のサイズに戻したい。 バグ 状況を再現する最小のコードを書いた。元のサイズに戻すことは .NET ではできないので Win32 の ShowWindow(hWnd, SW_RESTORE) 関数を使う。 class C { …

次バージョンを決めた

自作ソフトの現バージョンは 0.3 なのだけれど次バージョンは 1.1 に決めた。 メジャーバージョンを 0.X から 1.X に上げているのは大きな機能がたくさん増えるため。 なぜ 1.0 ではなく 1.1 なのかというと 1.0 だとユーザに初公開と勘違いされるかもしれな…

動作環境をわかりやすくするためのバージョン番号

最近では OS に限らずブラウザや IDE などにサードパーティ製のソフトウェアやアドオン、プラグインなどが増えてきました。 しかしソフトウェアの動作元のバージョンアップでソフトウェアが動かなくなることもあるので動作環境を明らかにすることは重要です…

エンドユーザがソフトウェアをインストールするときに DLL の依存関係を解消してくれたらいいな

ひとつの言語にひとつのパッケージ管理システムが当たり前になりつつある昨今、エンドユーザがソフトウェアをインストールするときにもパッケージ管理システムが普及して欲しいな。 たとえ複数のソフトウェアで同じサードパーティー製 DLL が使われていたと…

インライン SVG がうまく表示されない

インライン SVG というのは HTML に直接記述できる SVG です。こんな感じ。 <body> <svg> <path /> </svg> </body> そのインライン SVG が HTML 圧縮ツールのせいでうまく表示されませんでした。というのも input タグのような閉じタグのないタグは HTML ではスラッシュがいりません(あって…