草体にぼ日記

だらだらと

タイトルは思いつかない

こんばんは。今日は1コマからなのでこの記事書いたらさっさと寝ます。
だから頑張ってさっさと書き終えてやる!!(書き始め,3:06)

近いうちにブログをちゃんと目的をもって書くようにしようと思う。
近いうちにね。
今回はまた昨日までと同じように
日常 → 精進録って感じで。
(今回は精進録までの文量が多いので、読み飛ばしたい方用に、 ・精進録 ってでっかく書いておきます。 スクロールしてください)

・日常編
昨日ブログを書いた後寝る
13時頃に起きる。
おなかは空いていない。昨日の夜すき家に行ったからかな?
でも木曜日で大学の講義はないので、精進する気があるからコンビニに行ってミルクティーを買いに行きました。
で、C問題を1問解く
夕方に大学に行ってごはんを食べる。
帰る (19時くらい)
C問題1問、螺旋本1問
それだけしかやっていなのに気づいたら3時。
なぜ?????
本当に分からん…。まあ今言ったやったことについては後で話そう。

精進録の前に。お悩みの話を。
螺旋本、どうやって学べばいいんですかね…。


(ツイートって多分貼っても問題ないよね)
まあこのツイートは、AOJ本のやり方っていうか、やる価値あるぞ!!って言ってくれてるんですけど。
このツイートを引用して何が言いたいかというと
> 螺旋本やる価値あるんだな。頑張ろうってこと。

では最初に自分が提示したお悩みについてどうするか。
まずは私の最近の螺旋本に対する姿勢をお話します。

第一章のバブルソートあたりまでは、問題とアルゴリズムを読んで自分で実装しようとしていました。
それから第6章くらいまで、
>問題を読む
>分からん
>アルゴリズムを読む
>実装できそうにない
>解説を読む
>分からん
>コードを読む
>分からん
>AOJに行って他の人のコードを読む
>分からん。

こんな感じだったんですね。
で、なぜ「分からん」のかについては、反論はあるとは思いますが二つあります。

・一つは、C++言語に対してまだ知識が固められていないから。
>プログラミングに触れている期間についてみてみると、3月、9月、10月とまだそんなに長くなく、C++言語の本もまだ読み始めて一週間(一応一周はしたけどね。)

・もう一つは、解説を読むのに時間を割いていない。つまり理解しようと努めていないから。
>AOJに行って他の人のコードを読む。 これ、ダメですね。 プログラマーはコードを読めば何やってるか分かる!!! それはそうだ。
しかしそれは言語を理解したもののみ。それに、言語を理解したからと言って何も考えずに読めるわけがない。6年近く習った英語でさえ、何も考えずに読むことはできるようになっていないのだ。
そして生まれてからずっと使ってる日本語だって、ミィィィィって感じで聞いたり読んだりしても理解できない。
きっと今この長文を読んでいるあなたも(もし理解しようとして読んでいるのなら)結構集中して読んでいるだろう。

一つ目に対しては、後々分かっていくでしょう。

で、2つ目に対して、僕は今日螺旋本で、コッホ曲線という問題をやっていました。
当然解けるはずもなく、 さっき述べた螺旋本お勉強手順の コードを読んで分からんってところまで行きました。
で、ふと「このまま 分からん -> 次の章へ行く->次の章…」って感じでやっていけばいつか分かる問題に出会える。そう思っている自分がいることに気が付きました。
おそらくですが Noです。
それともう一つ。
螺旋本ってなんか、問題がAtCoderの感じに似てないから、AtCoderに似てない問題はそんな考えなくてもいいでしょ。
DPとか累積和とか説明したら集中してやろう。

そうやって怠惰に学んでいました。

で、話の転換はここから。
今日、コッホ曲線という問題を分からんまで行った後、ちゃんと理解しようと努めたのです。
まず結果から。
「ちゃんとやれば理解できんじゃん!!!」

はい、理解できました。
僕がコードを読みたくない理由は、主に以下の理由でした
「scanf , printf 分かんねえよ」

はい、よく考えたらこれだけだったんですよ。
構造体も、自作の型も一応お勉強したのでそこそこ分かるようになっているんです。
だからちゃんと読めば分かりました…


というわけで!!!
螺旋本、時間をかけて勉強します!! あっはっは!!
(文字でかくするのテキトー(何も考えずに雑にという意味のてきとう)にやってます、見づらかったらごめん)

あともう一つお悩みがあるんですよ。こっちは解決できません。

僕は、高校受験の頃と大学受験のころとどちらも、塾を途中でやめてるんですね。
塾を好きになってかなり勉強をやった後で嫌いになってやめた。
そして辞めた後は気分が最悪になって勉強ができなくなった。

こういう流れがあるんです。
であんまり大学内の話はしたくないんですけど、大学入ってからも同じようなことがありました。

この話から何が言いたいかっていうと、今競プロをとても好きで頑張っている(当社比)のですが、いつか嫌いになってしまいそうなのがとても怖いです。
それは誰かと不和を起こしたのがきっかけで起こるかもしれない。普段のツイートがきっかけで人と喧嘩して嫌になるのかもしれない。
とても怖いです。
あくまで主観ですが、結構な数の人を好意的に見てしまうので、距離感を間違えて死ぬ可能性が結構あると思うんですよ。
だから、気を付けてるつもり。
そして本当に気を付ける。(ほんとか??WW)
かといって、ネットの人はネットの人!と割り切って考えるのは流石に寂しすぎる。
Twitterを介して友達になったりするのはダメなんでしょうか…?
僕は「あり」だと思ってるんですよね。でも、ありだと思っているせいで不和を起こすのかもしれない。

まあとりあえず気を付けて生きます。
そんだけ・。・


・精進録
お待たせ
今日はC問題二つ解きました。少し解いてる際の考察等を書きます。
C - Rectangle Cutting
まず一つ目、面積の小さい方の最大値を求めろって問題です。
僕の考えの流れを書きます
>出力例を見る、長方形の面積の半分が出力例にある。ってことは大きい方と小さい方のサイズが一緒はおkか
>どういうときに長方形の半分が答えになる?そしてどういうときに最適な分割方法が二つ以上ある?
>長方形を横、縦に二等分、対角線で二等分するときは半分にできそうだ。
>では、上記で上げたとき以外はいったい何が最大になるのか
>(x,y)が入力で与えられたとき、その点を通る直線の方程式 Y = a( X - x) + y だ(aは任意の実数)
>でもこれじゃ解けないな。お手上げだ。「ギブ!!解説読む!(とツイートをする)」
するとフォロワーさんが、高校数学は対称性大事 のようなことを言ってくれました。

>対称性を意識して最大の面積が導出できる…?
>あ!!!!!!長方形の中心と反対側の点を直線で結べば半分にできる!!!
>さらに、上記のように点を取るとき、点は1点しか取れないので、真ん中以外の時最適な分割方法はない!!
あとは頑張って実装
ってことで解けました。
C - Prison

2問目です
テキトウに紙に書いてみる。分からん
>bitset で L1 とR1 が3,5 . 00111 11111にして、うまいこと 00111 ←3番目から5番目をつなぐ線分としてみる
>みたいなことが出来ないかな…できねえ…諦めた(ここまで1時間くらい?)
>ディフィカルティ―100が解けない…俺はダメ…


解説を見る

は?? 天才か??

解説頭いいっすわ。僕が言っても面白くないので解説見てください。
ってか皆さんは解説読まなくても解けると思う。


で、今日C問題二問しかやってないって言ったけど嘘ですわ。
AtCoderに新しく生えたチュートリアルやりました。
みんなもやろうね!!

やべえよ、執筆で1時間ぐらい使っちゃったよ…
寝ようね。

おやすみ