金魚亭日常

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

AtCoder ABC #022 C - Blue Bird

C: Blue Bird - AtCoder Beginner Contest 022 | AtCoder

1 から出て 1 に戻る道を考えるが,まず,1に隣接している点から出て別の隣接している点に戻る道を考える.

1を除いたグラフについてワーシャルフロイドで全組み合わせの最短距離を求めておく.

1に隣接している点から2つずつ選び,点1 - 点i,点i-点j,点j-点1 の和の最小値を求め,答えとする.

答えがグラフを初期化した値より小さくなっていなかったら -1を出力.

AtCoder ABC #022 C - Blue Bird

High Sierra で VirtualBox の VM が起動できないときは

vagrant up

するとエラーで起動できなかったので,VirtualBox から手動で起動してみると,Kernel Extention がない,みたいなメッセージ.

VirtualBox を再インストールしてみたら,今度はインストールできない.

これは, High Sierra からは カーネル機能拡張に追加認証が必要になったせいで, システム環境設定のセキュリティーとプライバシーの一般タブのところで,「〜はブロックされました」みたいなのが出てるので,許可してやればよい.

support.apple.com

developer.apple.com

High Sierra への長い道のり

Macbook Air mid 2012 を Sierra から High Sierra にアップデートしたが,色々ミスって大変だった.

アップデート

  • 10時間ぐらいたっても終わってなかったので強制終了
  • 起動ディスクが吹っ飛んで起動できなくなる

Command + R で起動して Time Machine から復旧

  • 無事に復旧
  • なぜかログイン項目に /usr/local/lib/node_modules/npm/lib/utils/usage.js が追加される

アップデート2回目

  • 成功
  • 以前から起動に時間がかかっていたのが気になっていたので,せっかくなのでクリーンインストールすることに.

クリーンインストール

  • Command + R 起動
  • ディスクユーティリティで Macintosh HD を APFS でフォーマット
  • MacOS 再インストール
    • 結果的に,起動に時間がかかるのはなおらなかった

データを復元

  • インストール時には復元せずに,後から移行アシスタントで戻すことに
  • 前と同じユーザー名(ユーザー1)でアカウントを作ったので,そのまま戻せない
  • 管理者ユーザーをもう一つ作り(ユーザー2),ユーザー1を削除
  • 移行アシスタントで復旧

FileVault 問題

無事に復旧できたと思ったが,再起動すると ユーザーがユーザー2しか表示されない. ログアウト後には両方表示されるので,FileVault を解除できるユーザーにユーザー2しか登録されていないかららしい. なので,ユーザー1をFileVault を解除できるユーザーとして登録しようとしたが,なぜかエラーで失敗.

そこで,

  • FileVault を解除 -> ユーザー2を削除 -> ユーザー1でもう一度 FileVault

としようとしたけど,FileVault をユーザー1でオンにしようとしたら

「認証サーバで操作が拒否されました.要求された操作は現在の資格情報では許可されません」

とエラーが出てできない.

調べてもわからないので,もう一度クリーンインストールすることに

クリーンインストール 2回目

今度は,インストール時にデータを復元. 多分問題なし.


ということで,アップデート2回,クリーンインストール2回 という結果になった.

起動に時間がかかる問題はなおらなかったのでアップデートが成功した時点でやめておけばよかったが,空き容量が20GB ほど増えたのでまあ良い. 移行アシスタントでユーザー名変えたくないときは,インストール時にするか,管理者ユーザーと普通ユーザーを作って普段は普通ユーザーで運用,とかすると後からでもデータ移行をスムーズにできると思った.

TimeMachine で復旧したのは初めてだが,

  • めちゃくちゃ時間がかかる(250GBで5,6時間ぐらい)
  • ログイン項目に /usr/local/lib/node_modules/npm/lib/utils/usage.js が毎回追加されるのは謎
  • FireFox のプロファイルはバックアップされないらしい
  • Thunderbird のプロファイルはバックアップされる
  • アプリケーションはインストールされた状態で復元されるが,ライセンス認証などはやり直し

ということがわかった.

天下一プログラマーコンテスト2017

Beginner の方に出て A, B, C 解けて 69位

Rating は 1157 -> 1210

B

順位でソートして,最下位の順位 + 最下位の得点 を出力

C

N が偶数の場合は

 \frac{4}{N} = \frac{1}{N} + \frac{1}{N} + \frac{2}{N}

なので,N, N, N/2 を出力

Nが奇数の場合は,

 4hmw = N(hn + nw + hw)

だから, (hn + nw + hw) が偶数にならないといけなくて,それはn と h のどちらかが偶数の場合.

n と h を固定すると,wは

 w = Nhn / (4hn - Nn - Nh)

となるので,n と h を 1から3500まで全て試して,wが割り切れればそれが答えとなる.

としたが,偶数奇数で分ける必要はなく,奇数の場合の解法だけでいける.

天下一プログラマーコンテスト2017