SHOJIN.E.D

プログラミング、英語、筋トレなど日々精進していきます

今日やったこと(2020/5/9)

いつの間にか一週間もさぼってしまった。今日は7時半に起きたが、9時に二度寝をして13時になってしまった。クズである。今日は再びブログを書く気になったので書いていきます。

macbook proを購入

macbook proを24回払いで注文した。今使っているパソコンは高専3年生になったときに親に払ってもらったものである。gtx1060が乗っているいわゆるゲーミングノートで動作もサクサクでゲームもできる。しかし、これを持ち歩いて外で使うとなると重いし、なんとなく恥ずかしい。ACもすっごいでかくて重たいし。高専で授業中にゲーミングノートを使っているのが本当になぜか恥ずかしかった。不思議だが本当に恥ずかしい。なんでだろう。やっぱりでかくて不格好だからかな・・・そんな思いとはもうこれでおさらばである。5月終わりに届くらしい。楽しみである。

AtCoderについて

先週末に2回AtCoderのABCに参加してみた。結果をいうと2回ともABしか解けなかった。理由としては問題が難しかったってこともあるし、勉強不足って感じがする。まずはどうにか頑張って茶色にならないとまわりにAtCoderやってるよ!とも言えない。参加して思うのは茶色って意外と遠いなーって思った。ABC30分以内に解く?かABCDをフルで時間を使って解けるようになることが必要なのだろうか?今のところ過去問で精進しているが、AtCoderでいうdifficulty灰色の問題は解ける気がするが茶色の問題以上は解ける気がしない。今のところは灰色の問題を埋めている途中である。灰色がすべて埋まったら少しは茶色が解けるようになるだろうか・・・・?明日はAtCoderがある。C問題が解けたらいいなあ。

筋トレについて

筋肉はどれだけ早くついて、どれだけ早くおちるんだろうという話があるが、まさに僕は後者の方を実感している。4月初めにジムが閉鎖になり、それから一か月筋トレをしていないがもうすでに体重が5キロも減ってしまった。鏡を見ると自分の体が小さくなっているのを感じて悲しくなってくる。あと3週間我慢しないと・・・

筋トレを始めてから2年弱経とうとしているがこんなに休んでいるのは初めてである。自分のマッスルメモリーに期待して乗り切っていきたい。

大学について

履修計画を立てようと各授業のシラバスをちらりちらりと見ていたのだが書いてある単語何一つわかんなくて震える授業がいくつかある。高専時代はどんなに勉強しなくても単位が落ちるなんてこれっぽっちも思わなかったけど今回はそうはいかないようである。友達もいないし。ああ、本当に震える。

明日の目標

+AtCoderがんばろう! +そろそろ生活リズムをもどすぞ!

今日やったこと(2020/5/2)

今日は13時起床相変わらずクズみたいな生活である。昨日は2時に寝たはずなのになあ・・・シャワー浴びてご飯食べて14時から作業開始!

1. VScodeスニペットを登録

僕は競プロにC++を使っているんですがライブラリのインクルードとかfor(int i = 0;i < n ;i++)とかいちいち書いていられないということで入力を補助してくれるスニペットとやらを登録してみました。とっても便利である。

2. ABC154に挑戦

A問題

A-Remaining Balls

if文で文字列が同じやつの数字から1引くだけ!

B問題

B - I miss you...

文字列の文字数文'x'を出力するだけ! 最後に改行を出力することに注意

C問題

C - Distinct or Not A_{1}からA_{N}で全探索してみたらO(N2)でTLE

この整数列のどの2つの要素も互いに異なるならば→重複を許さなければいいいと考えてsetに入れて要素数が同じだったら"YES"、違ったら"NO"と出力でAC

解説を見たらソートすると同じ要素が隣接するから先頭から順に探索してもいいとあった。なるほどね

D問題

D -Dice in Line

期待値を求めるところまではいけたけど隣接するK個の期待値の最大を求めてもO(N2)でTLEしてしまう・・・

結構考えてもわからなかったから解説をみると期待値の累積和を求めてそれらの差をとるとO(N)で最大の期待値を求めることができると!頭いいなあ・・・ そして、最大値を出力してもWAになってしまった・・・原因は普通にcout << max <<endl;しても少数点以下5桁で切られちゃうみたい。それで誤差が出てWAという感じだったので、小数を出力するときは気を付けようという話でした。

この方法はほかの問題でも使えそうなので覚えておこうと思います。

今日はABCまではなかなかいい調子で解くことができた!この調子で頑張りたい!!! D問題も理解することができてうれしす!!

今日やったこと(2020/5/1)

5月になってしまいました。いつのまにかに葉桜になっているし(遅い)、最高気温が25度を超しているし、暑くて寝苦しい夜が来そうなのをひしひしと感じるようになりました。4月を振り返ってみると本当に何もしなかったことを後悔してしまいます。今日の起床は11時半、相変わらずクズみたいな生活リズムです。シャワーを浴びて、ご飯食べてたら12時半になってしまったのでそこから作業開始!

1. vscodegithubの環境構築

仮にも情報系だからgitとgithubぐらい使えるようになったほうがいいなーと思いまして解いた問題のコードをgithubに上げて管理することにしました。エディタはいろいろ調べてたら今まで使っていたVScode競技プログラミングにも便利そうなのでVscodeを使ってます。

そのときに詰まってしまったことがあったのでメモします。環境はwslのubuntu18.04LSをvscodeのRemote-WSLを使ってます。

2. VScode と git のインストール

ここでwindowsにgitをインストールしたんですが、Remote-WSLだとWSLにインストールされているgitを使うからインストールしなくてよかったのかも? wslにはすでにgitが入っていたのでそのまま続行

3. 公開鍵と秘密鍵の作成からのssh接続で失敗

こちらのページを参考にして公開鍵と秘密鍵を設定してgithubssh接続を試みました。

GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~

$ ssh git@github.com
PTY allocation request failed on channel 0
Hi mowamowa! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

なんか変なのでてるもののsshに接続できた!と思ったのだが一度VScodeを再起動すると接続できない・・・

$ ssh github.com
mowa@github.com: Permission denied (publickey).

なんでかなーと思ったらssh-agentでssh-addを使って登録しても、terminalを再起動しちゃうと設定が消えてしまうみたい! 再起動するたびにeval $("ssh-agent")'してssh-addをするのも大変だし、.bash_profile`に書けばいいのかなーと思ったんですけど面倒くさくて中止・・・

sshで接続できるようになってもterminalからはgitにアクセスできるものの、VScode上のgitからはpermission deniedが出て結局できませんでした! なのでもうssh接続するのはあきらめて、httpsでいろいろやりとりすることにしました!sshhttpsの違いもよく分かっていないのでこれから勉強しようと思います。

3. WSLからのwindows領域へのgit cloneはできない!

リポジトリをwslとwindows両方から見れたら便利かなーと思って/mnt/c/git/githubで作成したリポジトリgit cloneしてみたところ失敗・・・

 $ git clone https://github.com/mowamowa/AtCoder.git
Cloning into 'AtCoder'...
error: chmod on /mnt/c/git/AtCoder/.git/config.lock failed: Operation not permitted
fatal: could not set 'core.filemode' to 'false'

調べてみるとwindowsubuntuではファイルシステムが違うためcloneできないらしい。なのであきらめてubuntu配下で作業を行うことにしました・・・

4. ABC157ABC問題

上記の作業が終わった時点で時計はすでに17時を回っていました、悲しい。

とりあえず何問か解こうと思って今日はABC157のABCを解いてみることにしました。

1. A問題

簡単でした。

2. B問題

ビンゴの配列はvectorの2次元配列で作ったほうがいいのかそれとも普通の配列でいいのか・・・

3. C問題

全部ループで回して探索しても1000で済みそうなのでその方針でプログラミング開始

スムーズに行けると思ったもののi番目の桁の数を取り出す方法で詰まる・・・ 計算して求めるか文字列にして求めるか迷ったものの文字列にして求める方法で作成

str[i]で数値が返ってくるとずっと勘違いして入力の数字と比較しても全然合わなくてどんどん時間がたってく・・・ そこでやっとstr[i]で返ってくるのはchar型の文字だということに気づいてstr[i]-'0'で数字に変換しました。

完成してサンプルで動かしてみたら全部正解だったので提出みたらみごとにWA・・・ なんかいろいろ変えてみたらACしました、気力がつきたので原因究明はできず・・・

5. 今日のまとめ

  • ssh-addは再起動すると設定した鍵が消える

  • 簡単な形ならvectorは使う必要ない

  • 数字から数値への変換はchar - '0'

明日は早起きして朝から頑張りたい!!

精進

精進

精進-Wikipedia
精進は、仏教用語の梵: vīryaの意訳語。撥音を無表記して「しょうじ」ともいう。漢訳仏典では毘梨耶、毘離耶と音写して「勤」「精勤」などとも訳す。神道では精進を「そうじ」と読んで物忌と同意に用いる。 八正道では正精進として、四正勤が挙げられている。

20歳になって自分の人生を振り返ってみると、常に楽なほうへ流されるような人生を送ってしまった。僕は情報系の大学生である。高専を卒業して大学に編入するという進路を通ってきた。しかし、高専でしっかり勉強した類の人間ではなく、課題は適当に過去レポをコピーアンドペーストして、定期テストは一夜漬けをして乗り切ってきた。編入試験にはなぜか合格した、奇跡である。

しかし、大学に入って気が付いたのは、自分が何もできない人間になってしまったということだ。高専で勉強をしなかったから専門科目もできず、大学受験をしていないから一般科目もできない。このままでは就職はおろか、まともな人間になれないかもしれない・・・そんな危機感から、今まですることができなかった努力というものを頑張ってやってみることにした。

毎日コツコツと努力を積み重ね、ふと気づくと自分が大きく成長していたことに気づく・・・そんな体験をしてみたい。そのために、日々精進していきたい。

精進すること

これから頑張りたいことは三つある。

1. 競技プログラミング

情報工学科の学生として恥ずかしくないプログラミング能力を身に着けたい・・・。 とりあえず、学生として優秀なレベルであるとされる茶色を目指していきたい。

2. 英語

研究室などに配属されるうえで英語が話せないと恥ずかしい思いをする気がするし、英語を喋れたら何よりかっこいい。

3. 筋トレ

高専4年生から筋トレを始めた。今はコロナウイルスによる緊急事態宣言でジムが閉鎖されているが、終息したら再び頑張って生きたい。

以上三つ、日々精進!