金魚亭日常

読書,ガジェット,競技プログラミング

2017年8月に読んだ本

漫画ばっかり…

期間 : 2017年08月
読了数 : 7 冊
マストドンつまみ食い日記 (NextPublishing)
ITmedia NEWS編集部 / インプレスR&D (2017-07-12)
読了日:2017年8月31日
ダンジョン飯 5巻 (ハルタコミックス)
九井 諒子 / KADOKAWA (2017-08-10)
読了日:2017年8月11日
たぶん惑星(1) (REXコミックス)
粟岳 高弘 / 一迅社 (2013-09-27)
読了日:2017年8月11日
ジョジョリオン 8 (ジャンプコミックス)
荒木 飛呂彦 / 集英社 (2014-10-17)
読了日:2017年8月7日
ジョジョリオン 7 (ジャンプコミックス)
荒木 飛呂彦 / 集英社 (2014-05-19)
読了日:2017年8月7日
めしにしましょう(3) (イブニングKC)
小林 銅蟲 / 講談社 (2017-07-21)
読了日:2017年8月7日
映像研には手を出すな! 1 (ビッグコミックス)
大童 澄瞳 / 小学館 (2017-01-12)
読了日:2017年8月7日

上海・蘇州 3泊4日

行ったとこ

1日目

  • 外灘観光

2日目

  • 蘇州に移動
  • 遊覧船
  • 山塘街

3日目

  • 摂政園
  • 留園

  • 上海に移動
  • 天山茶城

4日目

  • 田子坊

移動

浦東空港から上海に入った.

吉祥航空. ちなみに機内でスマホいじってると電源を切るように言われた.

空港から市内へは,地下鉄で1時間ぐらいだったが,せっかくなのでリニアに乗った. リニアは片道50元で,プラス5元出せば一日乗車券付きのものが買える.

市内の移動はほぼ地下鉄.

バスにも一度乗った. 冷房ありだと2元でなしだと1元らしい. 乗るときに払う.

タクシーは安いので,4人いると地下鉄よりもこちらの方が安いかも.

上海から蘇州は新幹線. 新幹線は日本のものとほぼ同じ. 切符を買う時はパスポートが必要.

レンタサイクルが流行っていたが,QRコード決済なので旅行者は使うのは難しいと思う.

SIM

ASUS の8インチタブレットIIJの海外トラベルSIMを緊急用に入れておいた. iPhoneSIMロックは解除しておいたが,結局現地のSIMは買わなかった. いざとなったら,ドコモの海外ローミングが一日980円で無制限キャンペーン中だったのでそれを使うつもりだった.

地図

百度地図で訪れる予定のエリアをダウンロードしておいた. GPSで現在位置は取れる. 番地が結構しっかり書いてあるので,道に迷うことはほぼなかった.

乗り換えを調べたい時は,SIMを入れてあるタブレットを使った.

インターネット

VPNGate のVPNを使っていたので,特に困ることはなかった. 事前にミラーサイトのURLの配信サービスに登録しておいたが,IIJの海外トラベルSIMは特に制限はかかっていなかったので取り越し苦労だった.

余談だが,XPS13 は宿のWi-Fiに繋いだ瞬間にブルースクリーンになったので使えなかった.

お金

空港で2万円両替して,1100元. さらにクレジットカードで400元引き出した.

ATMは地下鉄の駅に大体ある. ATMによって一度に引き出せる上限が100元のところがあって,連続で引き出せば100元以上引き出せるが,手数料はその都度かかる. レートは空港とATMとでほぼ同じだった.

食事は 30から50元ぐらい.

その他

  • 飲み物は外で買って持ち込むことが多かった
  • 宿のトイレは流すと詰まるのでゴミ箱に捨ててた

AtCoder ARC #080 E Young Maids [Rust]

勉強のために Rust にも移植. 150 ms.

慣れていなくて全然コンパイルが通らないんだけど,エラーメッセージに従ってなおして行くと通るようになって楽しい,みたいな感じになってくる.

ここは mut でしょ,って書いてたら mut じゃなくてよくね,って言われてほんまかいなと思って mut を外したら同じように動いていて,とにかく親切だった.

Go で書いた時はポインタ周りでハマってうまく動かない時があったんだけど,Rust だとそういうことは起こらなさそう.

AtCoder ARC #080 E

AtCoder ARC #080 E Young Maids

Python で解いてTLEだったので,Go に移植.

最初,通ったものの1600 ms とぶっちぎりで遅かったので,

qiita.com

を見てプロファイリングしてみたら,どうやら読むとこと書くとこが遅いっぽかったので,

最後に書き出すところを strings.Join() してから fmt.Println() 一回でやるようにして 1100 ms, 標準入力から読むところを,fmt.Scan() で読んでいたのを,

qiita.com

を参考にして bufioReadLine() でやるようにして,最終的に250 ms ぐらいになった.

あまり Buffer size を大きくしすぎるとMLEになるので程よいサイズで.

AtCoder ARC #080 E

VSCode の Integrated Terminal における 設定ファイルの読み込み順序(MacOS,Z shell)

VSCode の Integrated Terminal の PATH が重複があったり順番が変なことになっていたりして,色々調べた.

iTerm の場合,自分が設定を書いているファイルでは,

  1. ~/.zshenv
  2. /usr/libexec/path_helper 実行
    • PATH の 重複削除,システムのPATHが含まれている場合は削除
    • システムのPATHの後ろに削除後のユーザーPATHを追記
  3. .profile
  4. .zshrc

で PATH ができるが,VSCode の Integrated Terminal の場合,これがもう一周実行されているみたいだ. つまり,(4) まで実行された後のPATHに対して,(1) から (4) までがもう一度行われる.

とりあえず,~/.zshenv には pyenv の設定しか書いていなかったので,これを ~/.zshrc に移動したが,まだおかしいのでなんとかしたい.

参考

qiita.com

takuya-1st.hatenablog.jp

qiita.com

AtCoder ARC #080 / ABC #069

C問題にはまってしまって,時間がかかりすぎた.

Dは簡単だったので,先に解けばよかった.

1201 -> 1183

C

2を0,1,2個含むものに分けて数える.

解説見ると,難しく考えていたみたいだ.

D

順番に出力すれば終わり. 端に行ったら折り返す.

「うなぎ」って言うらしい.


2017-08-08 update

E

Segment Tree と Priority Queue を使う.

Python で解いたがTLEだった. 試しにPyPy で提出して見たらちょっと通るのが増えたが,依然としてTLE.

2つの要素を比べるのなら min より if で書いた方が速いみたいだ.

AtCoder ARC #080 / ABC #069