【月一最終回(?)】スツルムウントドランク

こんにちわ、kurokuです。

 

突然ですがいま僕は不機嫌です。(ABCでくそみたいな成績だったので(自業自得なんだよなぁ。。

そもそも今日一日を通して集中力があまりなかったです。コンテスト中もずっとそわそわしてました。

 

まぁそんな中でも記事を書いていきますよ。ええ。

トピックは、

・競プロ

・ゲーム制作

・CTF(Capture The Flag)

 

きょうぎぷろぐらみんぐ

冒頭でも書いたようにストレスの塊です。

競技プログラミングやめらんないんだけどwwwwww(錯乱

という状態がもうすぐ1年を迎えようとしています。(始めたのはもっと前だけど

 

今日のABC(ABC160)についていうと、今日みたいな5完速解き回(6問中5問が簡単なためどれだけ速くその5問を解くかで成績が大きく変動する回)は非常に苦手で、4問目で考察ミス、5問目でうんち構築をしたので遅い4完になってしまいました。

 

いつになったら水色行けるんでしょうね。

 

こんなストレスを抱えたまま半年~1年たつので禿げそうです。

というのも競プロをやる以上、Ratingを気にしてしまいます。一方で大学対抗のプログラミングコンテスト(一番?大きいコンテスト)ICPCは一発勝負です。なのでICPCアジア大会出場を目指している身としてはこんなRating、なんの役にも立たないんですよね。

とはいうものの、何か物事を長く続けるためには何らかのモチベーションがないと精神的にきつくなります。競技プログラミング(AtCoder等の競技プログラミングコンテストサイト)においてはモチベーションこそがRatingなわけです。

逆接が多くなってしまいましたが、つまりは、「競プロerは強くなる(Ratingが増える)とモチベーションが上がり、そうでないときは下がる」ということです。

これは非常にストレスになります。過去問を解いても解いても本番でミスして「この一週間何してたんだろ」と思ったり、「今週はなんもしてないから、明日のコンテストは出なくていいや」と思ったり。

 

まぁ、以上は僕ごときの愚痴です。

最終的には、「もっと強くなりてぇ~」というごく単純な理由で競プロを続けられています。学部にいる間は精進し続けようかと思います。

 

なにも競プロerとして食っていくわけでもないんでね、気楽にやればいいんです。

 

はい、機嫌なおった

ゲーム制作

今週の月曜日にすることねぇ~ってなったので、作りました。作成期間のわりにはなかなか達成感のあるゲームができました。

 

始業が延期されたので気が向いたらもう1作品でも作りたいと思います。

CTF

CTFについてもいろいろ触ってみました。

 

【CTFとは】

https://cybersecurity-jp.com/security-measures/33780

 

【モチベーションが上がるかもしれないCTFが題材の作品】

https://kakuyomu.jp/works/1177354054885669846

 

 

とりあえずハリネズミ本を買いました。

 

まだ一章しか読んでいませんが、、、

環境構築がだりぃ~~~~~~

Linux系は講義でちょっと触ったくらいなのでまじでなんもわからん。(特にPATHの通し方がわからん、どれがアプリケーションだよ

 

直接は関係ないですがホストOSとゲストOSとのファイル共有の設定にも3時間くらいかかった。だれかOS補完計画やってくれ。

 

 

 

って感じで、ほぼ環境構築しかやっていないのでとくに話すことはなかった。

 

日本のコンテストとしてはSECCONが秋くらい?にあるっぽいのでそれに出てみようかなと。(海外のコンテストはいっぱい開かれてる)

 

これもICPCと同様にメンバー募集です。

 

人数は、、、上限なしです。これが何を意味しているか分かるでしょうか?

 

CTFの出題範囲は、「リバースエンジニアリング」、「パケット解析」、「暗号解読」、「競プロ(またお前か)」、「データベース攻撃」などなど。そして時間制限は1~3日

 

 

 

あほか???

 初心者が1人でやるには競プロ以上に禿げてしまいます。

ダレカタスケテクレルヨネ?

 

別に本気でやろうとは(今のところ)考えていないので気軽にお声がけください。

まとめ

月一での投稿もとうとう最終回です。

なんとなく決めたことでしたが全うできてよかったです。(質の話はするな

 

 

感染症が流行していて大変ですが、皆さんも体調には十分気を付けましょう。

 

 

 

それではさようなら、またいつか

【ポエム】【現役向け】最近思うこととか語る

はじめに

 こんにちは、2年次のまんじゅうです。3年次なるまで後1週間切りったので新3年次って名乗った方が良いかもしれませんが。

今回はいつもの活動報告ではなく、現在進行中で暇を持て余しているので、ポエム枠として(関係ないことも含めて)色々語っていこうと思います。

ポエム枠書くの初めてなのでぐだぐだです。超長いです。あと実になる話があっても現役向けばっかりになるかと。そのため、興味あるところだけ見てもらえればと思います。一応要点は太字にしているので、そこだけ追っても最低限言いたいことは伝わる‥かな?それと気楽に書きたいので文体とか適当になると思うのでその辺ご了承下さい。

新入生向けの記事はまた別に書きます。このサークルがどんなことをしているのかを知りたい人はこの記事ではなく、後ほど上げる記事を見ることをオススメします。

追記:3月31日にたか君が新入生向けの記事を書いてくれました。ありがとう!見たい方はこちらからどうぞ

追記2:4月2日に僕の方でも新入生向けの記事を書きました。たか君の記事とはまた違う話をしています。見たい方はこちらからどうぞ

 

 

 

 

 

 

 

‥‥いいですね?

(こういうの1回やってみたかった)

 

 

 

 

目次

 各項目であまり話が繋がってないので、見出しだけまとめておきます。タイトルは上の「目次」みたいに大文字になっているので見つけやすいと思います。

今回は下記の6つでお送りします。

・この記事を書くに至ったきっかけ

・最近の進捗

・RPGツクールについて思うこと

・競プロの話

・ゲームジャムについてのあれこれ

・あとがき

それではどうぞ。

 

この記事を書くに至ったきっかけ

 皆さんは最近どう過ごしてますか?僕はとにかく暇です。元々春休みが暇になりやすいのに加え、新型コロナの影響で大学から「無駄に外出ないで(意訳)」と言われ、始業日も2週間ほど延びたことも大きいです。

あ、あとtwitterでも発言しましたが、C98当選したものの、新型コロナの影響を考えた結果5月開催の場合は参加自粛します。残念だけど仕方ないね。‥って書きましたが、先程C98が中止になったとメールが来ました。しゃーない。

ついでにGWに授業日が割り振られるってニュースでやってました。マジ?これが本当ならなおさら5月開催には参加できなかったっす。もう開催ないけど。

 ただこれだけなら「基本情報(基本情報技術者試験)の勉強に集中できるじゃ~ん」って思ったんですが‥

今朝メール見たらこんなの届いてました。

基本情報の対策を進める自分に突然襲いかかる衝撃

‥なんてこったorz。僕としてはこれちょっとまずいですね。というのも秋の試験は秋大祭と被るけど、実は僕会長なので、可能なら展示の方もいるべき‥、しかも来年の春だと色々と手遅れ。このままだと秋大祭の参加捨てて受験しなきゃいけないです。初年次の時も用事で参加できなかったので、秋大祭行きたいという気持ちに反して出席率がどんどん悪くなっていく‥。

ただ試験の延期も検討しているとのことなので、なんとか中止じゃなくて延期になって下さいお願いします。

 とにかく、これで僕に残された道は

・ゲーム制作(やれ)

・暇つぶし(ゲームで遊ぶ、動画見る、小説読む)

・ブログ書く(この記事)

位となってしまいました。あ~暇だあ~

こんな経緯があり、せっかくだから記事でも書こうと思ったので最近の進捗でも語っていこうかなと思います。

 

最近の進捗

 さっきは勉強いらなくなって暇だ暇だ言ってましたが、実はゲーム制作も地道にやってます。むしろハイペースかも(今までが遅すぎ)。TNP現役の皆さんは進捗どうですか?(突然のジャブ)

僕は2/3まで作ってたRPGツクールMVの練習作を完成までなんとか持っていきました。完成まで約1年かかる練習作があるらしいっすよ(プレイ時間目安:3~4時間)

問題の作品。タイトルから既に嫌な予感がする

 作った感想としては、最初一発ネタから始まったのになんでこんな長編作品になったのかと自分でも驚いています。いやほんとに。

 次に参加するコミケの作品集には入ってるとは思いますが、RPGアツマールに投稿するかは検討中です。というのも僕はニコニコは一般会員なので、今後も考えるとあまり容量ないんですよね。なので容量削るだけ削ってWeb上での動作に問題が無ければ投稿します。そこまでやる気力が無かったら‥察して下さい。

 

 そんなこんなでやっと(作りたくも無いけど)作っているゲームを完成させなければならないという呪いから解放されたので、東方の二次創作RPGの制作に着手し始めました。初年次の頃からずっと作りたいって言ってて、そのために(セール外に)RPGツクール買ったというのもあるので、やっと夢が叶った感じです。

 ちなみにこちらは素材の利用規約の関係上、コミケには出せません。アツマールと適当なサイト配布になると思います。在学中に完成すればですが。

 それで作り始めて思ったんですけど、作りたいゲームを作るのってめちゃくちゃ楽しいっす。楽しすぎて気がついたら毎日平均5時間位制作活動してました、みたいな状況になってます。え、全然暇じゃなさそう?これしかやることが無いんです‥

 話戻しますが、さっきのを踏まえると、制作のモチベ上げたい人は「○○みたいなゲームつくりたい!」というように「こういうの作りたい!」というのを見つける方が良さそうかなと。純粋に作りたい物を作るのでモチベが上がります。

 あとミニゲームみたいに構造が簡単で、短期間で作れそうな作品にするのもコツですね。モチベが長続きするかは本人次第ですが、短期間で作れるものにすれば無理矢理完成まで持っていけるので。間違っても完成まで半年とか1年かかるようなゲームを作るのはやめよう、ほんとに(経験談)

 目標を決める方はともかく、短期間で作れる作品選びについてはゲームジャムである程度決め方の練習ができます。未完成で終わってしまってもある程度制作が進んだ状態なので0から作るより楽ですし、必然的にミニゲーム作ってる(はず)ので短期間で完成しやすいかなと。そのためにゲームジャムがあったのかあ()

 簡単そうとか難しそうとかはLineで僕とかに聞いてもらえれば意見くらいは出せるので、困ってたら遠慮せずに是非質問下さい。春休み中は皆暇だと思うので。

 

RPGツクールについて思うこと

 で、そろそろ皆さんこう思ったんじゃないですか。「あれ、こいつプログラミングしてなくね?」と。実際RPGツクールはプラグインを自作したりゲーム内で細かいゲームデータを参照したりしない限りはプログラミング必要ないんです。当サークルでRPGツクールが流行らない理由ですね。会長なのにそんなの使ってていいのか‥?

しかしゲームデータの参照は検索すればある程度出るのでややこしくてもなんとかなりますが、仮に他人のスクリプトを改変したり、なんならスクリプトを自作しようとすると結構大変です。

どんな感じのことをしているか、雰囲気をつかんで貰うために適当なコアスクリプトの一部分を用意しました。

 で、これを見て大体の人は「は?」とか「なにこれ?」とか「いきなり変なもん見せんじゃねーよ」とか思うでしょう。

ですが、安心して下さい(?)、全文読んでもさっぱり分からないです。というか長すぎて読めません(確か合計6万行くらい)。僕がJavaScriptをあまり知らないってのもありますが、それにしても厳しいです。分かりにくいと思う理由としては、クラス継承のしすぎで子クラスのメソッドとかフィールド変数が膨大な数になってるんですよね。そりゃ分からん。更にRPGツクールMVはコメント文によるコード説明がほぼ無いので解読は地獄です。

で、僕は変えたい機能が見つかり次第これを解読して書き換えていると。といっても僕は有志が作ったプラグイン(拡張機能)を多用しているのでそちらのコードを書き換えますが、そちらはヘルプがしっかりしているのでなんとか理解できます。公式のスクリプト書き換えは死ぬ

なんでこんな話をしたかですが、ツクールに興味がある人(このブログ見てる人でいるか分からないけど)に自力でスクリプトを書き換えるのは大変だよって伝えたかったからです。ま、自分がプログラミングしない限りは制作が楽な制作環境なのでそこを最大限活用しましょう(本末転倒)

僕自身は仲間が増えるのは大歓迎なので、興味があったら是非。有料で結構高いですが、セール中ならほどほどな値段になる上に頼めば部費から補助金出してもらえるかも?(僕の時は半分負担して貰いました)

 

競プロの話

 長々とツクールの話をしてきましたが、ようやくまともなプログラミングの話に入ります。え、さっきの?一般的なプログラミングじゃ無いでしょあんなん()

 これは経験談ですが、RPGツクールでの制作(上述のプログラミング要素無し)みたいなことしてるとプログラミングができなくなっていきます。ほんとに。

このサークルに所属している以上、どうやってコーディング力を向上(最低でも維持)するかは課題になってくると思います。まあコーディング環境(DXライブラリとかSiv3DとかUnity(物による)とか)でゲーム作っていけば他の人から教わったノウハウを吸収していくので徐々に上手くなっていくと思います。

ただ、僕みたいにRPGツクールのようなコーディングいらずの環境で制作する人やそもそもゲームを作りたくない(素材制作勢は例外)人はどうするのでしょう?

 そこで競プロです。なんと毎週100分頑張るだけでプログラミングがだんだん上手くなっていき、ついでに+で解法を読むことでアルゴリズムのノウハウも学べます(個人差あり)。これはやるしかねえ!

 やり方は簡単。AtCoderに登録した後にAtCoder Beginner Contest(ABC)に参加登録して、時間になったら問題を解くだけ!ね、簡単でしょ?

ABCは毎週末開催されているので、暇だったらやってみよう!‥という宣伝でした。実際オススメなので、とりあえず1回やってみて貰えると嬉しいです。暇でしょうし。

きっとそのうちkurokuくんがまた競プロ勉強会でも開いてくれるでしょう(無茶振り)

 僕は春休み中も継続してやっていますが、遂に来てしまったというべきか、レートが伸び悩んできたので困ってます。一応C問題はほとんど解けるようになり、物によってはD問題も解けるようになってはきましたが、いかんせん解答時間がなかなか短くならなくて‥。今はA~C問題までを20分以内に解くことを目標に頑張ってます。

あと企業コン、テメーはダメだ。

 

ゲームジャムを開催する理由

 実はこの記事で一番伝えたいことです。というのも以前開催したときの記事(センター試験直前編)で「ゲームジャムでお題を無視して自分が制作したい物を作る」という事について「長くなるので機会があればポエムで」みたいに書いていました。丁度良い機会なのでここで書こうかなと。既にここまでで超長文と化していますが。

興味ない人は「またあの人なんか喋ってるよ」位でいいですが、興味あるけど難しそうとか参加するのに勇気が要るとか思っている人には是非読んで貰いたいです。1歩踏み出せるかは本人次第ですが、理解は深まると思います。要点だけ見たい人はこの見出しの最後の方に箇条書きしてるので、そちらを見て下さい。

じゃあ早速本題に入ります。

 改めて述べますが、ゲームジャムお題を無視してに自分が制作したい物を作る事については、個人的には全然アリだと思います。

 理由としては、僕個人の意見としてお題はあくまで指標の1つであって強制する、強制される物ではないと考えているので、無理にお題に沿おうとするよりも作りたい物を作る方がやる気が出ていいのかなと。

ただ、お題も使いやすい物にするよう注意して選んでいるなので、出来そうならお題を使って制作に挑戦して貰いたいとは思ってます。発想力と柔軟さが増すと思います。

 また、ゲームジャムは話だけ聞くと難しそうとかそんな短期間で完成しないとか考えてしまって手が出づらいと思います。

ですが慣れない内は一日二日で完成できなくても仕方ないですし、その分他の参加者が助けてくれます。皆通った道なので。また、そもそも慣れている人でも時間の都合もあり成果物のクオリティは低くなりがちです。僕とかその筆頭ですし。そのため、出来とか質に関しては皆寛容で、あまり気にしない傾向にあります。これらのことから、参加するハードル自体は結構低いと思ってます

少し話はそれますが、成功体験ってすごく大切です。自信がつくので次の制作のモチベが上がりますし、行き詰まっても「あの時完成できたから今回もいける!」みたいに前向きになれます。

ただ、まだ作品を1つも作れていない人にとっては初めての作品というはかなりハードルの高い物で、一生完成しないんじゃないかとも思えるかもしれません。実際僕は初作品で変なジャンル選んだせいで完成まで半年かかり、完成するまでは「これ永遠に完成しないでしょ‥」とか思ってました。でもそれが完成した後は、完成まで持って行こうという意思が強くなり、それが反映されているのか今までよりもスムーズに作業が進むようになりました。

なんか広告みたいで胡散臭い?実話なので勘弁して下さい。

話を戻しますが、ゲームジャムは作品を完成させる事を目標にしているので、成功体験を得やすい環境だと感じています。先程も述べたとおり行き詰まったら他の参加者に手助けしてもらえるので完成まで持っていきやすいです。

 他にも、こういう会に参加することで新しい技術を習得したり発想が柔軟になったりと確実に制作方面の力が身につきます。なので、僕としてはこのような機会を通して制作活動に慣れたり、今後の活動への足がかりとして欲しいと思うので、気軽に参加してもらいたいです。ただゲームジャムは活動日以外に開催されるので、無理して都合をつけてまで参加する必要は無いです。新型コロナの問題もありますが、隙を見てちょくちょく開催するように努めるので、暇なときに参加して下さい。

こんなとこですかね。要点だけまとめると、

・ゲームジャムに参加すると色々学べるから、暇だったら参加すると良さげ

・ゲームジャムのお題は無理して従わなくてもいい

・ゲームジャムはいいぞ

ってとこですね。

ただし、今は新型コロナの問題もあるので、普通にサークル活動出来るようになるまでは開催を自粛します。たまには他の人開催しても良いのよ?

 

あとがき

 ここまで読んでくれてありがとうございます。気がついたら8時間経ってた上に5500字超えてたんですね。次からはもっと読みやすくなるよう気をつけます‥

 最初に予防線張ったので新入生でこの記事をここまで読んでる人いないとは思いますが、もし読んでたら長々と訳分からない(であろう)話を読んでくれてありがとうございます。もうあなたは期待の新人です。見学に来たら(僕が)喜びます。

 書いてみた感想ですけど、最近のあれこれをぼやきつつ、伝えたいことは書けたかなと思います。長いので要点探すのも一苦労ですが(特にスマホから見てくれてる方)。

最後になりますが、春休み、もとい自由に使える時間があと3週間もあるので、今後の糧になるよう大切に使っていきましょう。

それではこの辺で。また次の記事で会いましょう。まんじゅうでした~。

分かんない!!「分かんない!!私には分かんないの!! 」なんて分かんない!!私には分かんないの!!

「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!! 
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!『罪深い』って何なの!?罪があるのの何がいいの!?犯罪者がかっこいいの!?そもそも『混沌』って何!?カオス!?だから何なの!?『闇』って何!?暗ければいいの!?『正義』と『悪』だと、何で『悪』がいいの!?何で悪い方がいいの!?悪いから悪なんじゃないの!?右腕が疼くと何でかっこいいの!?『自分の力を制御できない感じがたまらない』って、何それただの間抜けな人じゃん!! 
ちゃんと制御できる方がかっこいいよ!!立派だよ!!普段は力を隠していると何が凄いの!?そんなのただの手抜きだよ!!隠したりしないで全力で取り組む人の方がかっこいいよ!! 
どうして二つ名とか異名とか色々付けるの!?いっぱい呼び名があったって分かりにくいだけじゃん!!英語でも何でもカタカナつけないでよ!!覚えられないんだよ!!鎮魂歌って書いてレクイエムって読まないでよ!!禁忌って書いてタブーって読まないでよ!! 
聖戦って書いてジハードって読まないでよ!!※ 
ギリシャ神話とか聖書とか北欧神話とか日本神話とか、ちょっと調べたくらいでそういう話しないでよ!!内容もちゃんと教えてくんなきゃ意味が分かんないよ!!教えるならちゃんと教えてよ!! 
神話に出てくる武器の説明されても楽しくないよ!!グングニルもロンギヌスもエクスカリバーもデュランダルも天叢雲剣も意味不明だよ!!何がかっこいいのか全然分かんない!! 
他の用語も謎なんだよ!!原罪とか十戒とか創世記とか黙示録とかアルマゲドンとか、『名前がいいだろ?』ってどういうこと!?『雰囲気で感じろ』とか言われても無理だよ!! 
相対性理論とかシュレディンガーの猫とか万有引力とか、ちょっとネットで調べただけで知ったかぶらないでよ!!中途半端に説明されてもちっとも分からないんだよ!! 
ニーチェとかゲーテの言葉引用しないでよ!!知らない人の言葉使われても何が言いたいのか全然わかんないんだよ!!自分の言葉で語ってよ!!お願いだから私が分かる事話してよ!! 
『ちゅーに』って何なの!?『ちゅーに』ってどういうことなの!?分かんない分かんない分かんない分かんない、分かんなーい!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」


こんにちは、老害生ガナリヤです><
もう三月で4年生でいられるのは後少しになりました・・・

来月からは外部生になるため、TNPにたまに遊びに行くみたいな感じになってしまいます(かなしい

さて、消えるまえに記事をいくつか投稿していきたいとね 思いますね(老害なりの賑わせ)

みなさん、「異能バトルは日常系のなかで」は知っていますか?僕は知っています(競プロ構文)

「異能バトルは日常系のなかで」の画像検索結果

5年ぐらい前のアニメで(もっと前か)
異世界能力をもつ人間がなにかしらするみたいな内容だったと思います><
覚えてない(そもそも見たっけか)

このアニメの中で

「異能バトルは日常系のなかで わかんない」の画像検索結果

上記の早見さんが2分強一発取りの
長台詞があります><(すごい)
冒頭のやつですね

櫛川鳩子(キャラクター)が、主人公の厨二病に対して
幼馴染として理解しようとはしてきたもののやはり理解できず
感情が高ぶった際の長台詞です(すごい)


今回、この長台詞を冒頭に書きましたが
このアニメのこのシーンをしらない人にとっては
「わかんない!」がわかんないよ!ではないでしょうか?

というわけでプログラミングしていこうと思うわね・・・🐍


まずは、「わかんない!」を出力するコードを書いていきます

string func(int n) {
    if (n == 0) {
        return "「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!! \n"
               "『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」\n";
    }
    return ""; 
}

上記はC++ですね><
main文で


int main() {
    cout << func(0) << endl;
}

のようにすると

「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」

と出力されます(一部をカットしています)

しかし、今回はこの「わかんないよ!」がわかんないよなので
わかんない要素をわかんない再帰にしていきます



string func(int n) {
    if (n == 0) {
        return "「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!! \n"
               "『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」\n";
    }
    string s = "「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!! \n"
               "『" + func(n - 1) + "』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『" + func(n - 1) + "』のどこがかっこいいの!?『" + func(n - 1) + "』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」\n";
    return s;
}

int main() {
    cout << func(3) << endl;
}

上記のようにすると

「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがかっこいいの!?『「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!!
『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」
』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」

になりますね だいぶわかりません。


さて、わかんない要素がわかんないよになりましたが
これで「問題点」がありますが わかりますでしょうか?(説明不足でわかんないよ)

このままでは、いわゆる再帰処理の爆発が起こりますね><
一個の関数で3つの関数を呼び出すので
深さが$d$のとき、$3^d$だけ処理が行われてしまいます、これでは虚無ですね

というわけで、メモ化再帰にしていきましょう

string dp[100];

string func(int n) {
    if (dp[n] != "") return dp[n];
    if (n == 0) {
        return "「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!! \n"
               "『ブラッディ』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『狂う』のどこがかっこいいの!?『クレイジー』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」\n";
    }
    string s = "「ジューくんの言ってる事は一つも分かんないよ!!ジューくんがいいって言ってるもの、何がいいのか分かんないよ!!分かんない!!私には分かんないの!! \n"
               "『" + func(n - 1) + "』って何がかっこいいの!?血なんてイヤだよ痛いだけだよ!!『" + func(n - 1) + "』のどこがかっこいいの!?『" + func(n - 1) + "』のどこがいいのか分かんない!!ジューくんの言う事は、昔から何一つ、これっぽちも、分かんないんだよぉおおおおーーーーっ!!!」\n";
    return dp[n] = s;
}

int main() {
    cout << func(10) << endl;
}

上記はメモ化再帰のコードです。
ある深さ$d$にて処理が呼ばれたとき、再帰処理で子供に処理を任せて
その結果を取得しますが
その結果をまとめ上げてそのままDP配列に入れます。
これによって、もし一回計算したらもう一度計算しなくて良くなりますね!

こうすると、もともとの文字列の長さを$S$とすると
もとの計算量は$O(3^d|S|^2)$でしたが
$O(d|S|^2)$にまで改善されます(はずです、計算量見積もりなので微妙なラインです)

これなら、深さ的には問題ないコードになりました!
ボトルネックは文字列自体の長さに依存します。


競プロを用いて、わかんないよの計算量を改善しました。
メモ化再帰は、通常のDPと比較すると
ランダムに更新が行われるような遷移に対して有効ですね><

ガナリヤでした><

「#月間競技プログラミングは役に立たない」が変わってきたという話 と 俄然出ないやるきの話

https://twitter.com/natanakane/status/1179389159368212486

こんばんえるえる〜

研究が一向に進まない四年生のガナリヤです。
本当に進まないです、どこから手を出していいかも分からず、そういう状況になるとさらに研究のやる気がアになります。

そいういう状況なのでTNPのブログに逃げています(おい)
久々のポエム枠です。


競技プログラミングとは

上記を参考にしてください。
日本でいちばん有名な競技プログラミングのサイトのAtCoderが去年書いたブログです。
競技プログラミングの説明や、最近の社会の変化に対する流れが出てきました。

https://atcoder.jp/contests/abc142/tasks/abc142_b

初めて競技プログラミングの問題を解くなら上の問題などがよいです。

– for
– scanf
– printf

が使えれば解ける問題ですね、意外と競技プログラミングは他のアプリ制作やウェブ制作に比べると簡単だったりします


月間競技プログラミングは役に立たない

このブログのタイトルは「月間競技プログラミングは役に立たない」に関するものです。

この#月間競技プログラミングは役に立たない とはなんでしょうか?

競技プログラミングは、いわゆる「アルゴリズム」や「計算量」を考えて、如何に素早くコーディングするか?を競うスポーツです。


例えば上記に上げた問題なら

– forを書ける
– ifを書ける
– scanfが使える

をどれぐらいのスピードで間違いをすることなく書けるか?
という力が身につきます。

また、競技プログラミングはいわゆる「プログラミング筋肉」が身につきます。
どういうことかというと
「ぷよぷよ作りたいんだけど、ぷよが繋がっている判定どう作ろう」
というのが、一瞬で書ける力です。

昔はさっぱり出来ませんでしたが、競プロを初めて一年半ほどたった今は、迷うことなく書けるようになっています(実際に書いていないのでおそらくですが(おい))

競プロの楽しさといえばやはり、土曜日の夜21:00~22:40のコンテストで、リアルタイムに順位が変化するところと、それの結果によって、レートがダイレクトに決まるという点だと思います。
出るだけだとレートは伸びないし、下がることのほうが多く、強くなるしかレートは伸びないです。
ただ、それだけレートが伸びると非常に嬉しい気持ちになれまs

そんなこんなで、ハマると楽しい競プロなのですが、10年ほどまえから「競技プログラミングは実務で役に立たない」という論争が毎月のようにTwitterで行われていました。

特に、このころはまだ競技プログラミングの名前が世間で非常に薄く、情報オリンピックもまだ影が薄かった時代です。

そのため、いわゆるアルゴリズムを得意としない(得意分野がアルゴリズムではなく、他の開発系に向いている人)としばしばTwitterで論争が起きていました。


役に立たない時代から(一部)必要とされる時代へ

そんな論争もこのまえもまたTwitterで起きてました。

「競技プログラマーのコードは簡潔で、計算量のためなら可読性を下げたコードを書く。実務にとって、邪魔だし読み辛い」

みたいな論争でした。

ここらへんが勘違いされやすいところですが
「競技プログラマーはできるだけ計算量を減らす人間」ではないです

どちらかというと「計算量考えなくていいなら、簡単な実装・読みやすい実装を選ぶ」人間に、強くなるほどなっていきます。

理由は単純で、計算量の制約ないなら別にどんな解法でも良いからで、楽に書いて早めに提出したほうがレートが上がるからですね。

そんなこんなで、競技プログラマーはたしかに「アプリ」や「システム」「ファイル構成」などは苦手ですが、「汚い」コードとは必ずしもは言えないかもしれないです。


話がそれてきたので戻します(何も考えないで書いているので)

最近(僕はまだ二年弱しかやっていないですが)、非常に競技プログラミングの幅が就活・社会で広がってきているなと感じています。

先週の日曜日、コンテストで東京に行ってきました。

スポンサーは軒並みに太いです(僕は頭わるいし開発がガバなので入れませんが・・・)

競技プログラミングのスポンサーは、ここ数年非常に強いところが揃っています。

  • Google
  • Yahoo Japan
  • KEYENCE
  • MUGEN(画像処理+ロボットアーム 三ヶ月で収入が倍になってるらしい、こわいね)
  • Sky(人工知能)
  • Free
  • KLab(ラブライブの開発とか)
  • Future(アルゴリズム、人工知能)

今回のコンテストのスポンサーもYahooと電通で太い感じでした。

どうしてコンテストのスポンサーが比較的強いのかというと、新しい企業ほど(成長率の高い企業ほど)、より強い改革・そして海外に勝つための新しい技術を必要としています。

特に、競技プログラマーの

  • アルゴリズム力
  • 考察力
  • 実装力

を必要としています。(これは罠で、別に競技プログラミングやってない天才のほうが多分多いのですが)

また、DeepLearning系の会社も競技プログラマーを非常に欲しています。

新しいDeepLearningの開発や実装をするとなると、論文の公式を読んでそれを再現すること、そしてさらに拡張することが必要になります。
そういう力が競技プログラマーはすでに持っているため、必要とされるわけです。

先週のコンテストでFutureの人も、競技プログラマーを取る率が高く、競技プログラマーは他のこともできると言ってました


海外だとHackerRankを筆頭に、既に競技プログラミングで就職・転職することが当たり前になってきています。
日本だと情報の流通と、そもそもやる気の差が激しいので広まりません。

ただ、競技プログラミングが求められている仕事があるので
全員がそれにつくべきでないし、ウェブもアプリもゲームもありとあらゆるジャンルが必要であるため、そういうことになってほしくはないのですが
やはりこれからのプログラミングの3大テーマ

  • 人工知能
  • ビックデータ
  • IoT

を考えると、さらに競技プログラミングをやっている人間ほど有利になっていくんじゃないかと思います。
月間競技プログラミングが役に立たない が 簡単には否定できない時代が来たように思えます。
僕は開発ができないのでアですが・・・


やる気の話

ポエム枠なので、あとまだ寝る時間にははやいのでやる気の話をします。

というのも現在研究室で新しく入るB3と勉強会を一緒にしたい、といろいろとねっているのですが、結局「やる気」の話に陥ってしまうからです。

大学生は結構プログラミングができる子・できない子が非常にはっきりします。
文法が分からず、アプリなど動くものを作ったことがない子も居て、いわゆる下から上まで幾度となく居ます。

ただ、僕が思っているのはみんなプログラミングができないということはなく、むしろ「そういうプログラミングができるようになる機会がなかった」
が正しい表現だと思っています。

僕は1,2年生のころ、文法を暗記することに必死で、無駄な努力をしていました。

当然楽しくありませんし、しょうもないこと(C#のIE系とか)で時間を無駄にしていました。(これは無駄)ラムダ

ただ、僕はゲーム制作、そしてなにより競技プログラミングに出会って、レートが伸びて、オンサイトにいって、ある程度の満足感を得ることが出来ました。

プログラミングができない、やる気のないという人はおそらく、この「成功体験」や「承認欲求」を満たしたことがないんだと考えています。

一度、レートが伸びる、ゲームをプレイしてもらう、アプリを作ってTwitterにあげてFavをもらう、Qiitaに投稿する

こういう成功体験 をしているかいないかで、プログラミングに対する目的意識などが変わるんだなぁって思っています。

話がまとまらないので、まとめるとB3との勉強会でどうやる気を引き出すか?や、そもそもやる必要がないんじゃないか、迷惑なんじゃないか

など色々考えて、僕は何が楽しいんだろうなぁって考えるようになったということです

僕はやる気が他の人よりも強い人間ではなく、趣味もなく、お金をかけたいと思うことがないので(にゃん)

僕はゲームジャムは非常に賛成で、きっかけさえあれば、プログラミングが嫌い・できないが少しずつ変わると思っています。(コンテストがあって出れませんでした、ごめんなさい(次は是非出たいです!))
ゲームジャム・アプリ制作・競技プログラミング・Qiita・ウェブ制作、など、何でもいいのでなにか作ると決めて、それを外部に公開して遊んでもらう、成功体験をするのが大事なのだなぁと(終りが見えなくて焦っています)


寝る時間になったのでにじさんじ見て寝るます

グダグダ書きましたが、研究が進んでいません。
こういうダメ人間にならないように、やる気がモテる人間になってください
僕はそういう人になれなかったので、きょうも進んでいません

なんかつまらない話・ポエムすぎるのと、暗いので次の記事では「本当の技術系(Neo4jらへん)」か「にじさんじの推しライバー」を書きます

見返してないので、結構変なこと書いてるかも