草体にぼ日記

だらだらと

2020年4月8日 日記

2020年 4月 8日

まえがき

今日はあんまり活動してない!!(うぉおお,生活リズムをなおせ〜〜〜)

いや,治さなくてええんや。たくさん寝ろ。
達人プログラマーあんまり面白くなくて読むのツライので,読書ノート作りながらじゃなくて流し読みにします。

2014年もあと2日で終わりですか。なんだか寂しいですね。

健康管理

2:00 ~ 8:00 途中1時間くらい起きてた気がするので5時間睡眠
からの11:00 ~ 14:00で3足しました。
起こしてくれた人,ありがとう。

体調は+-0

何した

  • エンジニアの知的生産術の3章を2回め読み終わった
  • 達人プログラマーを流し読みすることに決めた
  • オムライス作った
  • 銀行のカード再発行した
  • つかれた
  • 螺旋本の二分木の写経をした。あまりうまく行った感じはしないな。
  • 螺旋本の根付き木が自分で書けた。

おつかれさま

せっかくだからコード見て。

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
typedef long double ld;
#define For(i, a, b)    for(int i = (a) ; i < (b) ; ++i)
#define rep(i, n)       For(i, 0, n)

// Write From This Line
struct Node {
    int parent, child, brother;
};
Node T[100010];
int D[100010]; //深さ
int n;

int root = 0;
void setDepth(int v, int depth) {
    D[v] = depth;
    if(T[v].child != -1){
        setDepth(T[v].child, depth + 1);
    }
    if(T[v].brother != -1){
        setDepth(T[v].brother, depth);
    }
}
void print(int u) {
    //出力形式 node 0: parent = -1, depth = 0, root, [1, 4, 10]
    printf("node %d: parent = %d, depth = %d, ",u,T[u].parent, D[u] );
    // TODO Nodeの種類
    if(T[u].parent == -1) cout << "root, ";
    else if(T[u].child == -1) cout <<"leaf, ";
    else cout <<"internal node, ";
    cout <<"[";
    for(int i = 0, chi = T[u].child; chi != -1; i++,chi = T[chi].brother) {
        if(i) cout <<", ";
        cout << chi;
    }
    cout <<"]" << endl;
}
int main()
{
    cin >> n;
    rep(i,n) {
        // 兄弟,親,子を - で初期化(それぞれが存在しないことにしておく
        T[i].parent = T[i].child = T[i].brother = -1;
    }
    // 子供の入力を受け取る
    rep(i, n) {
        int v, degree, L;
        cin >> v >> degree;
        rep(j,degree){
            int kid; cin >> kid;
            // まず親を持つ
            T[kid].parent = i; 
            // 兄弟を作る
            if(j) T[L].brother = kid; 
            else T[i].child = kid;
            L = kid;
        }
    }
    // 根のindexを取得する
    rep(i,n){
        if(T[i].parent == -1) root = i;
    }

    // 親から順に深さを与えて行く。
    setDepth(root, 0);

    rep(i,n){
        print(i);
    }
}

今日解いた問題

AtCoder Petrozavodsk Contest 001

[整数,約数]
まず,x = 9 , y = 3みたいに,yがxの約数である時を考えます。このようなとき,xの倍数は3の倍数でもありますよね。分かる?俺の言ってること分かる?どうしてわからないかなあ…じゃあね,ほなね,ちょっと具体例考えてみよっか。
9の倍数っていうのは9,18,27ってあるじゃん,これらはちょっと分解すると,32 x 1, 32 x 2, 32 x 3 こうなってるでしょ。
だからね,9の倍数っていうのは常に3の倍数でもあるんだぴょん
そういうわけで,yがxの約数であるときは-1を出力するのさ〜

それ以外のときはxを出力すればいいね(yがxの約数じゃないから,x % y != 0)
木の精進をしたいので虚無を埋めてしまいました。

あとがき

螺旋本の精進を今からもう少しやろうと思う。
ちゃんと理解は積み上げて行かないと死んじゃうよね。知らんけど

ねえ,椅子が明日届くよ うふふふっふ

以下は毎回記事に貼っているテンプレート

基本的に読書はTwitterで絡みのある人だけだと思いますが、僕のブログだけ見てるって人もいるかもしれないので、一応自己紹介っぽいことをしている記事を貼っておきます - 瑞々しぃにぼしの自己紹介(自己紹介の記事です)