金魚亭日常

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

AtCoder ABC #138

D まで解いた. Dはpython再帰したら深さがアレでREになったっぽかったのでC++に書き直すか,と思ったら時間切れだった.

しかし,最近出るたびにratingが下がっていく…

A. Red or Not

普通に場合分け

a = int(input())
if a >= 3200:
  print(input())
else:
  print("red")

https://atcoder.jp/contests/abc138/submissions/6981216

B. Resistors in Parallel

なんか数学なやつかと思って考え込んでしまったが普通に計算するだけだった.

n = int(input())
a = list(map(int, input().split()))
ans = sum([1/x for x in a])
print(1/ans)

https://atcoder.jp/contests/abc138/submissions/6997764

C. Alchemist

ちまちまと試していたら,小さいほうからやるのがよさそうだった(証明ナシ).

n = int(input())
v = sorted(list(map(int, input().split())))
ans = v[0]
for i in range(1, n):
    ans += v[i]
    ans /= 2
print(ans)

https://atcoder.jp/contests/abc138/submissions/7002940

D. Ki

木を1からたどれば終わり.

#include <algorithm>
#include <cmath>
#include <cstdio>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <sstream>
#include <string>

using namespace std;

static vector<vector<int>> g;
static vector<int> ans;
static vector<bool> visited;
static vector<int> c;

void walk(int e, int cnt) {
  ans[e] = cnt;
  visited[e] = true;
  for (auto i : g[e]) {
    if (!visited[i]) {
      walk(i, cnt + c[i]);
    }
  }
  return;
}

void solve(int n) {
  ans.resize(n + 1, 0);
  visited.resize(n + 1, false);
  walk(1, c[1]);
  for (int i = 1; i < n; i++) {
    printf("%d ", ans[i]);
  }
  printf("%d\n", ans[n]);
}

int main() {
  int n, q;
  cin >> n >> q;
  g.resize(n + 1);
  for (int i = 0; i < n - 1; i++) {
    int a, b;
    cin >> a >> b;
    g[a].push_back(b);
    g[b].push_back(a);
  }
  c.resize(n + 1, 0);
  for (int i = 0; i < q; i++) {
    int p, x;
    cin >> p >> x;
    c[p] += x;
  }
  solve(n);
  return 0;
}

https://atcoder.jp/contests/abc138/submissions/7019342

2019年7月に読んだ本

それでもデミアンは一人なのか?

新シリーズ. この人は誰だろう,とか 考えながら読んでいる.

無能なナナ (5)

最後どうなるのだろうか.

無能なナナ(5) (ガンガンコミックス)

無能なナナ(5) (ガンガンコミックス)

海獣の子供

3巻まで持っていたので,残りをそろえた. 映画を見る前の予習.

海獣の子供 (1) (IKKI COMIX)

海獣の子供 (1) (IKKI COMIX)

海獣の子供 (2) (IKKI COMIX)

海獣の子供 (2) (IKKI COMIX)

海獣の子供 (3) (IKKI COMIX)

海獣の子供 (3) (IKKI COMIX)

海獣の子供 4 (IKKI COMIX)

海獣の子供 4 (IKKI COMIX)

海獣の子供 (5) (IKKI COMIX)

海獣の子供 (5) (IKKI COMIX)

数学ガール 秘密ノート 行列

数学ガール 秘密ノート ビットとバイナリ

ビットとバイナリ 後半よくわからんかったので,読み返したい.

三体

めっちゃよかった. 暗黒森林(The dark forest)を読んでいる.

三体

三体

へんなものみっけ (3)

読んでてつらい気持ちになるが,それはそれとしておもしろかった.

へんなものみっけ! (3) (ビッグコミックス)

へんなものみっけ! (3) (ビッグコミックス)

PC自作メモ(2019年 4月)

4月にデスクトップを組んだ. 初自作.

古いラップトップが,換装したSSDDSP版のWindows 10 Pro が載っていてもったいなかった,というのが主な理由.

ケースが小さくて,特に電源回りが厳しかった,というの以外はすんなり組めた.

Windows はライセンスの再認証が必要になるが,これには移植前にMicrosoftアカウントでログインして認証しておく必要がある,というのがはまりポイント.

CPU Ryzen 2200G 10,695円

AMD CPU Ryzen 3 2200G with Wraith Stealth cooler YD2200C5FBBOX

AMD CPU Ryzen 3 2200G with Wraith Stealth cooler YD2200C5FBBOX

マザーボード ASRoxk A320M-ITX 10,886円

ASRock AMD A320チップセット搭載 Mini-ITXマザーボード A320M-ITX

ASRock AMD A320チップセット搭載 Mini-ITXマザーボード A320M-ITX

メモリ CORSAIR Vengeance LPX Series CMK16GX4M2A2666C16(ブラック)10,945円

電源 CORSAIR SF450 (SFX,450W,80PLUS GOLD) 11,498円

CORSAIR 450W SFX電源ユニット 80PLUS GOLD認証取得 1系統 SFシリーズ SF450

CORSAIR 450W SFX電源ユニット 80PLUS GOLD認証取得 1系統 SFシリーズ SF450

ケース SilverStone SST-ML06B 6,782円

SilverStone Milo Series Mini-ITX HTPCケース ブラック SST-ML06B

SilverStone Milo Series Mini-ITX HTPCケース ブラック SST-ML06B

ストレージ (SSD 240GB)と OS (Windows 10 Pro) (古いマシンから流用)

計 50,806円 だがポイント使いまくったので,実質2万ぐらいだったはず.

AtCoder の自分の提出をダウンロードする

AtCoder Problems の API 使ってsubmission ページにアクセスして,コード部分を抜き出してダウンロードするやつを Go で書いた.

github.com

今までは,GitHub Gist に ちまちまと貼っていた.

ダウンロードしたやつは, milkode に突っ込んで,検索する,という流れ. 多分,便利なはず.

Windows Terminal をインストール

2019-06-08 版です

> git rev-parse HEAD
2da5b0b14682f5522b84116b3e6a6688de3c7423

環境は,

です.

基本的に,以下に従えばOK.

github.com

1. VS2019 インストール

  • Desktop Development with C++
  • Universal Windows Platform Development
  • Windows 10 SDK (10.0.18362.0)
  • Git for Windows (インストールしてない場合)

2. ソースコード取得,submodule 取得,nuget

    git clone git@github.com:microsoft/terminal.git
    cd terminal
    git submodule update --init --recursive
    .\dep\nuget\nuget.exe restore .\OpenConsole.sln

3. OpenConsole.sln をVS2019で開く

  • solution を ターゲットし直すかきかれるので,する
  • 足りないものをインストールするかきかれるので,インストールする

4. 開発者コマンドプロンプトからビルド

cd path/to/terminal
msbuild /p:Configuration=Release /p:Platform=x64 /p:PlatformToolset=v142 /p:TargetPlatformVersion=10.0.18362.0 /p:PreferredToolArchitecture=x64 OpenConsole.sln

5. 警告が出たとこを修正して再度ビルド

  • 基本的にエンコーディングのエラーなので,該当ファイルを開いて,UTF-8 with BOM で保存し直す
    • 「コードページ 932 では保存できないので Unicode で保存してください」 みたいなのが出る
    • src\inc\test\CommonState.hpp とか,src\terminal\parser\ut_parser\InputEngineTest.cpp とか
  • 加えて,src\tools\vtpipeterm\main.cpp については,該当行のstringu8 を追加する

6. VS2019 からインストールして実行

  • ビルド > ソリューションの配置
  • スタートメニュー > Windows Terminal (Dev Build)

設定

新規タブのところのメニューから設定に進むと,profiles.json が既定のエディタで開くので,そこからキーバインドとかフォントとか色とかいろいろ変えられるみたい

不具合?

まだあまり使ってないが,タブを閉じると落ちる気がする(複数タブ開いて閉じていくと最後の1つを閉じる前にアプリが終了する)

2019年5月に読んだ本

気づいたらマンガの新刊が結構出ていたので,買った.

十二国記はついに新作が出るらしいので,再読. 風の万里 黎明の空 の最後のシーンがよい. Netflixにアニメあるので,久々に見ようかな.

booklog,ブログ用htmlを出力する機能が見当たらなかったので,開発者ツールでそれっぽいhtmlを探してノードをコピぺする,という荒業を使った. 元々どこにあるのかわからん機能だったが,ブログパーツ終了とともになくなってしまったのだろうか.

読書記録,いまいち使いやすいものがないので,自作するしかないとか思っているが,終っていったやつの理由がAmazon関係が多くてそれなりにめんどくさそうなので,できればやりたくない.