AtCoder Beginner Contest 061

C問題に時間をかけて、B問題 (https://abc061.contest.atcoder.jp/submissions/1283256) しか解けなかった。素直にA問題から順番に解いていくべきだった。

  • HyperSpec を参照する回数が多かったので、その時間ももったいなかった。
  • slime のミニバッファに出る関数のシグネチャをみて、使い方がわかる程度には慣れておこう。
  • 標準入力の部分は似たようなコードパターンがなので、こんなマクロを用意してもいいかもしれない。
(defmacro defsolver (name vars &body body)
  `(defun ,name ()
     (let (,@(mapcar #'list
            vars
            (mapcar (constantly '(read))
                vars)))
       ,@body)))

次回は、今週末 http://abc062.contest.atcoder.jp/ で。

AtCoder Grand Contest 014

agc014.contest.atcoder.jp

ひさしぶりに競技プログラミングの問題を解いてみた。
AtCoderにはSBCLがつかえるので、Common Lisp で解くことにしてみる。
ただ、C以降は手がでそうにでないので、A と B のみ。

Cookie Exchange

気になったこととしては、
各テストケースの実行時間とメモリ消費量は、ほぼ差がない。
しかし、はじめ2つの解答のとき、 in1.txt のケース実行時のみ数値がはねあがっている。
ただ、ash にかえた解答のときは、そうではない。
sbcl の起動に時間がかかってるのだろうか。 sbcl --script Main.lisp のように実行しているらしいが。

Unplanned Queries

私にとってこのコンテンストは難易度は高めだったので、次はBeginnersに参加してみよう。

Ubuntu 16.10 で skk で日本語入力する

前提

  • OSインストールあと、IME は fcitx
  • 全角/全角キーでInput Methodは切り替えできる
  • 標準の日本語入力と Mozc は使える
  • 気分転換のために skk をつかってみてもいいかと思った。

手順

  1. sudo apt install fcitx-skk でインストールする
  2. Input Method Configurator で skk をつかえるようにする
  3. SKKの設定を開いて「確定時にリターンキーを押しても改行しない」にチェックをいれておく

使い方

  • 全角/半角キーでひらがな入力モードにする
  • Shift を押しながらだと変換できるようになる
  • 送りがなを入力する前に、再度Shift を押す必要がある
入力例 結果
henkansuru へんかんする
Henkan<SPC>suru 変換する
Henkansuruq ヘンカンスル
AKeru 開ける
AnagaTiMatigaTteinai 強ち間違っていない

モードの切り替え

ひらがな入力モード 切り替え先 備考
q カタカナ入力モード -
ctrl+q 半角カタカナ入力モード -
l 半角英数字入力モード 戻るには ctrl+j

詳細は /usr/share/libssk/rules/default 以下のJSONファイルを読むといい。

使い勝手について

ひらがなのみを書くなら、非常に楽で、新鮮な感覚が味わえる。 Enter キーを押す回数が減るのかな。次は辞書機能を使ってみたいと思う。

Shift がつらい

Shiftを押しながらの送りがな入力がつらことがあるので、; で start-preedit するようにした。 これで「強ち間違っていない」は ;anaga;ti;matiga;tteinai と入力できるようになった。

参考URL