code jam Qualification Round 2018に挑んだ
細々とにわか競技プログラミング勢として気まぐれにコンテスト参加してるけど、初めてcode jamに参加してみた。
結果は、64点で無事予選通過ですることができた。
1. Saving The Universe Again
この問題は、「S」(Schott)と「C」(Chage)の文字列が与えられる。チャージするとそれ以降にショットするときのダメージが2倍になるので、隣り合った文字を入れ替えることができるので、最小の回数で任意のダメージ以下になるように入れ替える問題。
方針としては文字列の後ろから走査していき、「SC」の並びがあれば入れ替えてダメージ計算し、再度後ろから捜査し直すみたいなことをした。
2. Trouble Sort
この問題は、問題で示されたソートを実行して、どこで何番目の要素までソートできているのか判定する問題。
愚直にそのまま実装すれば、とりあえず点数もらえたので1番かんたんだった気がする。 高得点をもらうには入出力を高速化しないと厳しそう。
3. Go, Gopher!
Gopherに命令して任意のサイズ以上の矩形を作る問題。ただ、Gopherが言うこと聞かないときたまにある。
方針としては、とにかく3×3の正方形を塗りつぶすのをひたすら縦に繰り返していった。
4. Cubic UFO
中に浮かぶ立方体型のUFOを回転だけで影を任意の大きさにする問題。
高得点を目指さなかったら、影の面積が1.0000~1.414213なので1つの軸を回転させるだけでいい。結果的には、2分探索で回転角いじって面積を近づけていった。
【2017年度版】Mac 環境
普段、Macで使って使ってるソフトを備忘録的にまとめた。
Homebrew
emacs/vim
atom
zsh
$ cat /etc/shells // 入っているシェルの確認
$ chsh -s /bin/zsh // ログインシェルをzshに変更
iTerm2
Chrome
firefox
slack
LINE
Goole 日本語入力
Mac でOpenCVを使う
AtCoder ABC #056
いい加減に競技プログラミングに力を入れようとc++でABCから説いていくことにした。
時間が合えばABC、ARCは参加するかも...
A,B,C問題については問題なく解けたがD問題はなんとなくの方針だけしか思いつかなかった。
A問題 HonestOrDishonest
B問題 NarrowRectanglesEasy
既に合体してる場合と前の2つの場合の3つに分けて処理をした。
C問題 Go Home
順番に足していっても時間的に間に合うだろうということで愚直な方法で解いた。
D問題 No Need
もう少し実力が付いてからD問題はまた解くだろう。
年が変わるようなので2016年を振り返ってみる
世間では今日が大晦日で賑わっているらしいので新年を迎えるほんの少し前に今年1年を振り返る。
セキュキャン九州
IVRC(国際学生対抗バーチャルリアリティーコンテスト)
Gentoo Linux とArch Linux
普段からArch Linux使いですが何度もGentoo Linux に乗り換えをしようか迷うことがある。 まずは、それぞれの特徴から。
Arch Linux
シンプル、軽量なディストーション
です。 つまり、最小限の状態からシンプルにカスタマイズ出来ます。
一方Gentoo Linuxは
Gentoo Linux
Gentoo is all about choices.(>Gentooとは選択です。)
です。これは、インストールするソフトを選ぶだけでなくコンパイル時にしか選べないオプションも含めての選択。つまりシステムすべてをコンパイルしてインストールします。
Arch Linux vs Gentoo Linux
- シンプル
- 最新のバージョンをすぐに使える
- ソフトのインストールがGentooより早い
最強のシェルこと「zsh」の最低限の設定を書き直してみた
ほとんどのLinuxではデフォルトのシェルとしてBashを使えたりWindows10でもBashが使えるようになってます。しかし、デフォルトシェルを変更する人も多くいます。その中でも補完機能が優れていて最強のシェルとも呼ばれている「zsh」を使っており設定ファイルが醜くなったので1から書き直してみた。
.zshrc
まずはzshの設定ファイルである.zshrcからっと言いたいが設定ファイルが長くなると管理し難いので.zshrcは他のファイルに書いた設定を読み込むようにするだけにした。
ZSHHOME="${HOME}/.zsh.d"
if [ -d $ZSHHOME -a -r $ZSHHOME -a \ -x $ZSHHOME ]; then
for i in $ZSHHOME/*; do
[[ ${i##*/} = *.zsh ]] &&[ \( -f $i -o -h $i \) -a -r $i ] && . $i
done
fi
これはホームディレクトリの.zsh.dにある拡張子が.zshから始まるファイルよ読み込むようにしている。
.zsh.d/preferences.zsh
ここには環境設定関連の設定を書き込んでいく。今回は最低限の設定なので履歴と自動補完についてだけ記述する
#############################
#
# 環境設定
#
#############################
# PATHの設定
export PATH="${HOME}/bin;$PATH"
# 履歴ファイルの保存先
export HISTFILE=${HOME}/.zsh.d/zsh_history
# メモリに保存される履歴の件数
export HISTSIZE=1000
# 履歴ファイルに保存される履歴の件数
export SAVEHIST=100000
# 重複を記録しない
setopt hist_ignore_dups
# 開始と終了を記録
setopt EXTENDED_HISTORY
# 自動補完の有効化
autoload -U compinit; compinit
これで最低限の履歴保存とzshの長所である補完機能を一応使えるようになる。
他の設定はまた気が向けば書くかも...