Pythonにてリストの最後の要素を消すにはdelかpop()を使う

Pythonにて長さ100000のリスト arr があるとします。このリストの末尾を削除するとき arr = arr[:-1] とする方法は非常に遅いので要注意です。arr[:-1]により新規にリストが作成されてしまうのが原因です。ついカジュアルにこのような書き方をしてしまいがち…

Windows 10でディスクを入れるとVLCが起動するのを防ぐ

Windows 10でトレイにCDを入れるとVLCが自動起動して再生が始まってしまう現象に困っていました。 以下の手順により、自動起動を防ぐことができるようになりました。 Explorerを起動 光学ドライブを右クリックし、「自動再生を開く」を選択 「何もしない」を…

kaggle Traveling Santa 2018 参加記

kaggleの最適化コンペ "Traveling Santa 2018" にソロで参加しました。結果は1874チーム中328位。着手したのが2018/12/22と遅く、冬休みはまるまる何もできず。かけた時間がいくら何でも少なすぎました。スコアが平凡であまり価値はありませんが、記録として…

"WslRegisterDistribution failed with error"への対応法(追記あり)

Windows 10にてwindows subsystem for linuxを利用したUbuntu 16.04を立ち上げると、以下のようなエラーが出て起動に失敗しました。(エラーコードの部分は0x800703faです) Installing, this may take a few minutes... WslRegisterDistribution failed wit…

Visual Studio Codeで等幅フォントを使う

Visual Studio Codeはデフォルトだと日本語が等幅で表示されません。 そこで以下の手順により、日本語がある場合でも等幅で表示されるようにしました。 公式ページ から Myrica.ttc をダウンロードし、インストール 半角文字と全角文字の横幅の比が 1:2 なこ…

中古ノートPC Dynabook R734 を買いました

外での活動用にノートPCがほしいなと思っていました。友人からDynabookの中古はいいと聞いていたのでDynabook決め打ちで検索をかけ、2014年モデルのモバイル用ノートであるDynabook R734/E26KRを楽天市場で購入しました。外側に傷こそ目立つものの、中は予想…

Windows 10の環境構築

Windows 10がブルースクリーンを繰り返す事態に見舞われ、やむなく新しいSSD ( Samsung SSD 500GB 860EVO ) を調達してWindows 10を新規インストールしました。環境構築でやったことをメモします。 CapsをCtrlに Ctrl2cap インストーラで個別にインストール …

HACK TO THE FUTURE 2019予選 参加記 のまとめ

北大日立マラソン1st 参加記 のまとめ - minus9d's diary、北大日立マラソン2nd 参加記 のまとめ - minus9d's diary に引き続き、HACK TO THE FUTURE 2019予選 - AtCoderの参加記を勝手ながらまとめました。 順位 atcoderのID URL 備考 1 kimiyuki HACK TO T…

HACK TO THE FUTURE 2019予選 参加記

HACK TO THE FUTURE 2019予選に参加しました。8時間中7時間半ほど参加して22位でした。前回より1位だけランクアップしましたが順位表の1ページ目には入れず残念。 試行ログ まずは周囲に壁をつくるだけの初期配置を試し、80904点。 マークを盤面いっぱいにラ…

LinuxにてWindows 10のインストーラUSBを作成する

家のWindows 10が不調になりました。他にWindowsマシンを持っていなかったので、手持ちのLinux (Ubuntu 16.04 LTS) を使ってWindows 10のインストーラUSBを作成しました。この記事はその記録です。 ISOイメージの取得 Windows 10 のディスク イメージ (ISO …

Pythonのコード改善のためのツール5つを試してみた

Pythonのコードを改善するためのツールについて一通り試してみました。各ツールのインストール方法や使い方については Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ! - Sider Blog に詳細にまとまっているのでおすすめです。 サ…

KUPC 2018 C - 七目

本番中にパニクって解けなかったのを反省して解き直しました。DFSくらいさっと書けないとだめですね…。 問題 C - 七目 9x9のマスが白で埋められている。白マスが縦・横・斜めのいずれにも白マスが7個以上連続しないように、11個のマスを黒く塗る塗り方を求め…

TCO19 Single Round Match 737 - Div1 Easy (AliceAndBobEasy)

2018-09-19のTopcoderに3ヶ月ぶりで出場。実験を執念で繰り返してかろうじてEasyが解けました。あわててNimゲームの勝利条件を蟻本で確認しましたが、もはやこれが前提知識となっているとは。 以下、Easyの解法とPythonコードです。 #!/usr/bin/env python3…

AGC027 B - Garbage Collector

2018-09-15のAGCに出場。Aと、Bの部分点が解けて325位。Bは考え方は正しかったのですが、計算途中のオーバーフローに泣きました。上位陣でもBはスルーしている人が多かった中で、DPをやりたくなる衝動を抑えつつ部分点が取れたので、少し自信が付きました。…

ARC102 D - All Your Paths are Different Lengths

全然分かりませんでしたが、解説を見て理解できました。思いつけば簡単な問題なので悔しいです。 問題:D: All Your Paths are Different Lengths - AtCoder Regular Contest 102 | AtCoder 問題概要:パスの長さが0..L-1のちょうどL通りになるグラフを生成 …

SoundHound Programming Contest 2018 Masters Tournament 本戦 B - Neutralize

問題:B - Neutralize 問題概要:N個の薬品が並んでいる。各薬品の効用は-109 ~ 109。連続したK個の薬品の効用を0にする処理を任意回おこなったあとの薬品の効用の和の最大値を求める。 400点問題なのに2時間考えてまったくわかりませんでした。実行時間制限…

CUDAを使って2枚の画像の平均をとるプログラム

CUDAの勉強がてら書いてみました。2枚の同サイズの画像を読み込んで、平均画像を作成して保存するだけのプログラムです。環境はUbuntu 16.04です。 // 2枚の画像の平均を取るプログラム // 画像は以下から6000x4000のものを取得 // https://www.pexels.com/p…

Visual Studio Codeでエディタ領域とターミナル領域とを行き来するショートカットを追加

Visual Studio CodeではCtrl + Shift + @というショートカットキーでターミナルを表示させることができます。ターミナル領域がアクティブな状態にてエディタ領域をアクティブにするにはCtrl + 1やCtrl + 2(数値はペインの番号を表す)が使えますが、逆に、…

Docker imageのpushに失敗したらログインし忘れが原因かも

Dockerの練習中です。作成したdocker imageをdocker pushコマンドでDocker hubにpushしようとしたのですが、以下のエラーで失敗しました。 denied: requested access to the resource is denied この場合、以下のことを確認する必要があります。 https://hub…

AnacondaのNumPyとPyPIのNumPyの速度を比較する

Anaconda Pythonで提供されるNumPyはIntelのMKLを利用しているため高速だという話を聞いたことがあります。実際どの程度違いがあるのか試してみました。 環境構築 実験は、自作PCに入れたUbuntu 16.04で行いました。環境構築にはAnaconda Pythonが提供する仮…

AGC026 B rng_10s

おとといのAGCに参加して1問しか解けず。Bに二時間以上考えて解ききれないというのはさすがに問題だと思い、解説を読み込んで自分なりに咀嚼しました。本番で書いていたひどすぎるコードが消えてすっきりしました。しかし、本当に思考に穴がないかはまだ自信…

自分のブログに付与されたはてなブックマークの総数を公式APIで調べる

表題のAPIがはてなブックマーク件数取得API - Hatena Developer Centerに掲載されていました。2018年06月05日に追加されたばかりのhttp://api.b.st-hatena.com/entry.countというAPIを使えばよいそうです。 当ブログの場合、api.b.st-hatena.com/entry.total…

SRM735 Div. 2 1000 MajoritySubarray

Div.2に落とされた直後のSRMで、自己最高の4位を取ることができました。本当は同時開催のTCOに出るつもりだったところ操作ミスでSRMにエントリーしてしまっていたのですが、結果オーライでした。記念のスクリーンショット。 本番では解けなかった1000のMajor…

TopCoderのプラグインGreedで自動生成したコードで「あいまいなシンボルです」エラーを回避

TopCoderのプラグインGreed(詳細はTopCoder の強欲プラグイン、Greed を使う!)で自動生成したコードをVisual Studioでビルドすると以下のようなエラーが出ます。 error C2872: 'data': あいまいなシンボルです。 note: 'std::ifstream data' である可能性…

Linuxにおける2つのクリップボード - clipboard bufferとprimary selection

Linuxには「2種類のクリップボードのようなもの」があるということを今更明確に理解しました。 一つ目の「クリップボードのようなもの」は、Windowsなどでおなじみの"clipboard buffer"です。たとえばChromeにて、文字列を選択してCtrl + Cでコピー、Ctrl + …

シェルスクリプトでの'--'の意味は、オプションの打ち止め

シェルスクリプトでハイフンを2つ繋げた'--'の意味を最近はじめて知りました。これはオプションの打ち止めを意味します。 たとえばtouchコマンドで-hという空ファイルを作成しようとして $ touch -h とすると、-hがtouchコマンドのオプションとして解釈され…

書籍 "CUDA BY EXAMPLE" で julia_cpu.cu のビルドにはまる

引き続き、書籍 CUDA BY EXAMPLE を読み進めています。 Chapter 4のジュリア集合 - Wikipediaを描画するプログラムjulia_cpu.cuをビルドするのにやたら苦労したので、やったことをまとめておきます。OSはUbuntu 16.04 LTSです。 julia_cpu.cuのビルド まず、…

書籍"CUDA BY EXAMPLE"の"../common/book.h"の場所

少し古い本ですが書籍"CUDA BY EXAMPLE"を読み始めました。 サンプルコードにある #include "../common/book.h" の場所が分からなかったのでメモ。現在ではCUDA By Example | NVIDIA Developerの "Download source code for the book's examples (.zip)" を…

ぐるっとパス2018用の地図

ぐるっとパス2018用の地図を作ってみました。 www.google.com 休館日だったり改装中だったりする可能性があるので、お訪ねの際はウェブサイトをご確認ください。

WindowsにてGhostscriptを使ってPDFのサイズを縮小する

ScanSnapにてA4サイズ32ページのカラー書類を600dpi設定で読み込むと、138MB程度のPDF (src.pdfとします) が生成されました。このままだと大きすぎて取り回しが悪いので、Windowsでサイズの縮小を試みました。用いたソフトはGhostscriptです。 Ghostscriptは…