草体にぼ日記

だらだらと

プログラミング課題にいじめられたの巻

うぃ。

こんにちは。僕です。もう朝ですね。おはようございます。
とりあえずいつもみたいな感じで、一日の流れ → 精進の話って感じで進めようかな。

1日の流れ~ (一日と1日、表記を統一しろ。って自分でも思っている)

昨日ブログを書き終えたのが6時とかだっけ?それから寝る
→12時頃起床 →大学→ハラヘッタ
でも講義あるので飯食えん。
3コマ中 →
ハラヘッタ 寝起き、なんもやる気起きん。
気づいたら授業が終わっていた。
ちなみに授業中
先輩からDMが来る。「同じ講義受けてる?」 →僕「y」
そして授業後に初対面。こんにちは。こんにちは。
その先輩、来年から他大学に編入する方なので、編入についてのお話を聞きました。

3コマ終わった。飯。豚辛みそ丼。おいしい。
4コマは空コマ なんもやる気が起きない
で、今AtCoderの提出歴を見てみたんですけど、昼は全くAtCoderしてないらしいです。
あ、いや、やったわ。やったけどやってない。
javaの課題でAtCoderをやれっていうのがあって、それを3秒くらいやりました。
今日の13時〆の課題があるんですけどやってません。やる気ないです(ダメ人間)

でまあ、その課題をしてボーっとしてたら5コマの数学が始まりました。
プログラミングのための線形代数っていう本で線形を勉強しようと思っていたんですけど、どうもやる気が出ず、板書だけ取って、まあ、いつかこのプログラミングのための線形代数を読んで理解深めよう…っていうスタンスで授業聞いてました。


思うんですけど、まだ後期が始まったばっかで比較的授業が重くないうちに、学業投げ捨てて競技プログラミングやっといたほうがいいと思うんですよね。知らないけど。
まあそんな感じで言い訳して学業を結構疎かにしています。

はい。授業終わった~ 飯食った~
飯タベタ…そして声を掛けられる
「にぼしくん、プログラミングできる???」
アーッ
成り行きで図書館へ行き別学科の子のプログラミング課題をやることに…
計算量10^9を軽々と超えるプログラムしか書くことが出来ずに泣きました。
いじめられた。悲しい話。
まあいろいろ言いたいことはあるけどあんな課題はプログラミングの課題じゃねぇ!うんちだ!!

で、あと僕にも悪い点がありまして、それは "Java書けない^^"ってことなんですよね。
C++でできることjavaでも3/4くらいはできるようにしとけよ。

ってかさ java めんどくさくね?
何が楽しくね
Scanner sc = new Scanner(System.in); (あってる?)とか書かなあかんねん。

だるすぎやろ。
しかもあの言語、小文字と大文字区別するやん!しんど!しんど!だるい!だるい!Www書き方分からんおしまい

以上、競プロerからのjavaおよび課題に対する愚痴でした。

で、3時間くらい図書館に拘束されていたんですけど、その学科の課題をやって自身の課題は1ミリもやっていません

面白いですね。面白いですか?僕は面白くありません。

21:30 帰宅
風呂
22:PC前。
なんかやる気起きないな

学校から帰ってきたままの頭でいるのやだな…
少し寝よう。横になる
1時間くらい寝た。起きた。
よし、頭から大学が消えた。やれるぞ!!

ん~ハラヘッタ。すき家すき家にフォロワーがいた。

瑞々しいにぼし on Twitter: "いみこさんと一緒にすき家行ってきました"
まあ、これは僕にありがちなことなんですけど
「同じ時間帯にコンビニに行けば一緒にコンビニに行ったことになる」
っていう理論をすき家に応用したってことです。

んでまあAtCoderしてたらこの時間ですね。
あ、Twitterもしてたよ。
一日の流れここまで

                                  • -

AtCoderのお話
C - Divide the Problems
簡単。 ソートして真ん中の二つの差

C - Remainder Minimization 2019
結構苦戦した。
でもまあとりあえずこの問題を通して
例えばまあ、10^9+7 = mod としたときに、
modで割った余りを求める系問題について
・a+bをmodで割った余りは a と bをそれぞれmodで割った余りを足してからmodで割った余りに等しい。
・a * b をmodで割った余りは、aとbをそれぞれmodで割った余りをかけてからmodで割った余りに等しい。っていうのが理解できました。
証明もできます。嘘です。証明なんて言う仰々しいものはできません。
めんどくさいから自分が書いたのをそのまま貼るだけ貼っておきます
f:id:niboshi_bisyoujo:20191017061834j:plain

ちなみに足したほうについては、割った余りっていうのは、0以上mod以下になるまで
引いて、その0以上mod以下の数のことを指すんだから、まあいけるよね。って感じ
とりあえず入力で受け取った値の2019で割ったものを受け取って、できる掛け算全部やった。
まあ最悪のケースを考えてもありうるのは
1 * 2 から2017 * 2018までを2019で割った余りを求めればいいので
計算量は10^6くらい?
はい AC
そういえばこの問題の解説読んでない気がするぞ…読んでから寝ます


最後
C - Anti-Division
頑張った
偉い
本当はこの問題を一番自慢したかったんだけど
ブログ書くの疲れちゃったのでおしまい

終わる!

じゃあね