tshimizu's diary

日々の記録

競プロの記録 (2016_09_06)

しばらく旅行に行っていたため、問題に触れていなかったが今日から再開する。
今日は4問解いた。

1問目:ARC051_A

A: 塗り絵 - AtCoder Regular Contest 051 | AtCoder

長方形が円に内包されていることの判定に苦労した。
始めは、長方形が正方形の場合のみを考えていて、「4辺がそれぞ円の中心からX,Yの正と負の方向に半径のcos(45度)倍離れているか」で判定していた。
これだと平べったい長方形の時に判定を誤る。
結論としては、単純に、長方形の4点がすべて円の中心から半径分だけ離れているか判定すればよいだけだった。
また、普段の2次元配列で使う軸の方向と違い、普通のユークリッド平面だったので少しハマった。

2問目:ARC055_A

A: 数え上げ - AtCoder Regular Contest 055 | AtCoder

普通に数値として計算するとlonglongにも収まらないため文字列で処理した。

3問目:ARC057_A

A: 2兆円 - AtCoder Regular Contest 057 | AtCoder

倍率Kが0でなければ(1以上)、毎回少なくとも2倍にはなるのでO(log)。Kが0だとシミュレーションだと間に合わないが、毎回1ずつ増加するので、単純に差をとるだけでよい。

4問目:ABC042_C

C: こだわり者いろはちゃん / Iroha's Obsession - AtCoder Beginner Contest 042 | AtCoder

支払い料金は品物の料金そのものからスタート。
指定の数字が含まれているか、各桁について大きいほうから調べていく。
もしどれかの桁に含まれていれば支払い料金を1円加算し、また繰り返す。
どの桁にも指定された数字がなければループを抜ける。
桁を大きいほうから調べると、その桁を調べた後10で割れば、次の一つ小さい桁も、また同じMOD10の処理で判定できるのでラク。


ペース上げる。考える暇があったら手を動かしたい。
A予選まであと18日。

競プロの記録 (2016_08_29)

今日は3問解いた。
自力で解いたのは、
ABC044のA問題、B問題。
解説見ながら格闘したのは、
同C問題。
arc060.contest.atcoder.jp

問題を見てすぐに、「DPだろうな。」とは思ったけどそこまで。次に類題に出会ってもまだ解ける気はしない。
ここで時間を少しおいて、自力でコードを書き直すのがたぶん大事。
再解答リストに追加。デスクトップの付箋に記録しておこう。


先日競技プログラミングの勉強会に、ICPC直前期振りに参加した。
参加理由は、自分だけでは問題を解く手が動かないと思ったから。
実際、競プロのための時間を全然取れていなかった。意志が弱い。
ただこの作戦はそれなりに効果があった。
勉強会で、自分の(競プロから離れていたことによる)衰えや、解けない悔しさを
実感できたので、問題を解こうという気になった。

CODEFESTIVALに出たい。まだ時間はあるはず。やるべきことを確実にやる。
具体的には、このブログに解いた問題の記録を淡々と書き綴っていく。
そして「解けなかった問題の解き直し」。これまで面倒くさがって逃げてきたがもう逃げない。
王道で力をつける。

2016年8月

大学の3年前期が終わって一週間過ぎた。ここまでやったこと。海へ行った。ファインディングドリーを見た。バイトしていた。そして他の時間はUnityを触っていた。

8月20日にゲームを一つ発表しなければいけない。サークル(のようなもの)に向けて。締め切りがあるとやっぱりやる気が出るし、必死になれるから進む。ただし、他人と関わりのある締め切りであることが大切。Arduinoのときもそうだったし、自分にはこれが必要みたいだ。

 

なんとしてもGooglePlayでの公開まではいきたい。今度こそは口だけで終わりたくない。

 

8月17日からは2週間のインターンもある。今月は、わりと「外に対してやらなきゃいけないこと」が多い。もちろんそれは、自分の成長のチャンスのはずなんだけれども。

そのほか、夏休み中にやりたいことは次の通り。

1.英語(TOEIC, レアジョブ)

2.競プロ(ICPC,TopCoder, CODEFESTIVAL)

3.業界研究

4.自主課題研究、卒業研究に向けての準備(湯村翼さんのブログの方法を試したい。)

 

「残り時間」と、「出力するモノは何か」を意識していきたい。(最近のマイブーム)

 

python再び

今年度からの編入生と、機械学習pythonをテーマにして、週一でゼミのまねごとをすることになった。(実はゼミがどういうものかよく理解していない。)理由はよくわからない。たぶんノリ。

彼は、高専の研究室でも機械学習をやっていたので、さらに詳しく勉強して(実装というより理論)、学んだ内容を僕に解説してくれるらしい。僕はpythonを触ってみてその進捗状況を報告する。

半年くらい前に、「みんなのpython」を一通り読んだ。そのときはなんとなく一人でやってみただけので、成果はほとんどないし、今は内容も忘れてしまっている。今回はそのリベンジにしたい。今度は一人じゃないし、報告する相手もいて、相手がいることによる責任感に押されて勉強が進みそう。これまで何度も「webアプリ的な何かを作ろう!」と思い立ってきたけど形になったことはない。これがラストチャンスだと思って、今度こそそれを成し遂げたい。具体的には何かしらの形で、「公開する」ところまでやる。今、やり遂げられなかったら、一生そのままになるような気がしている。今度は一人じゃない。頑張ろう。

まず、この2日の進捗報告。

python『超』入門」という本を購入したので、まずはそれに従って学習を進めている。購入理由は、作れるサンプルが楽しそうだったから。いわゆる「なんかそれっぽい」ものが作れる。現在、5章の標準ライブラリの使い方までは終わった。3日後の発表日までには、6章の外部ライブラリもやって、そこまで報告する予定。かなり遅いスピードだけど、期末の勉強もあるのでそこまで時間をかけられない。AtCoderの問題も少しpythonで解いてみて慣れようかな。

 

蛇足。

今年もCODEFESTIVALの開催が決定した。昨年はthanksさえも予選落ちだけど、今年こそは本気で本選狙う意気込みでやりたい。

 

 

みんなのPython 第3版

みんなのPython 第3版

 

 

 

確かな力が身につくPython「超」入門 (確かな力が身につく「超」入門シリーズ)
 

 

2016年度の途中経過その1

久しぶりにブログを書く。最近、いろいろと大きなことが重なって、少し混乱しているので、ここに文章にまとめて整理したい。

 

<ICPCアジア地区予選出場決定>

先日行われた全国予選を何とか突破することができアジア予選への出場が決定した。メンバー構成は、M1の先輩(青)、B4の先輩(今日プロは初心者)、自分の3人。自分はA問題と、B4の先輩と協力しながらB問題を担当した。自分の実力不足のせいで、ほぼ先輩便りのチームになっていしまった。アジア予選までは3か月あるので、それまでには力をつけたい。アジア予選はすべて英語で行われるので、まずはTopCoderに登録して、英語の問題になれたい。そのついでに英語も勉強出来たらなおよい。具体的にはTOEICの点数を上げる。

 

インターンシップのES>

ここ二か月くらいは、サマーインターンのためのES、履歴書を何枚か書いていた。まず、取り組んだのはF社。最近、退職した人のブログが話題になったとこ。選んだ理由は、学部のないようとかかわりがあるし、インターンの期間が3週間と長かったこと。そして、やっぱり「やっぱ大企業でしょ」という安直な理由。

ESを書き始めてすぐにつらくなった。自分の文章の拙さに気づいたことも残念だったが、自分にかけるような中身が見つからなかったこと。大学の就職支援室で添削してもらったが、文章の体裁が整っただけで、本当に内容の薄いものが出来上がった。

理由は、自分の誇れるものが見つけられなかったことの他に、企業、業界のことを何も知らなかったことが大きかったように思う。自分のやりたいことが何で、どうしてその企業(同業他社ではだめ)ならそれが達成できるのか、ということに関して、かなり具体的に書かないとやはり説得力がない。書いた自分でよんでもそう思うのだから、人事の方が読んだらなおさらそうだろう。F社は予想通り落選した。

結果は落選に終わったが、自分と向き合い、今後を考えるいい機会にはなった。F社には行けなかったが、市内の組み込み系の企業へのインターンは参加が決まった。学生でチームを組んで開発を行う内容で、インターンでなくても普通に面白そうな活動。自分にはアイディアを出して、実際にそれを作るという経験がなさすぎるから、このインターンは自分いとって貴重な経験になることを期待しているし、そうなるように努力するつもりだ。

 

<大学の勉強が不調>

中間試験が一通り終わった。結果はどれも目標からは程遠い。出席や課題のてんでも怪しいところがある。根本的に勉強の絶対量が少ないことは原因だけど、「取捨選択」ができていないことも大きいとおもう。今一番抑える部分はどこなのか、後に回してもいいのは何なのか。力を集中するポイントがずれている気がする。もちろん、そのように効率ばかり求めるのが良いわけではないけれど、そのような効率的にやる能力があった上で、オプションとして、場合によっては採算度外視のやり方ができるというのが大切だと思う。

 

<(おまけ)すべての元凶?>

これがすべての不調の原因だと言ってしまっては甘えになるけど、少なからずメンタルに悪影響を及ぼしていることがある。6月の頭にあった出来事をいまだに引きずってしまっている。直後と比べたらだいぶ冷静になったけど。

そのようなことに対しても、すぐに切り替えられるメンタルが欲しい。そして今回の件で、日ごろから周りの人に感謝の気持ちをもって過ごす必要性を感じた。

 

基本情報の勉強法と最近思うことについて

基本情報の勉強の手ごたえがない。もちろん絶対的な学習時間が足りてないのは原因なのだろうけど、「これならいける」という感覚がない。

現在やっているのは、ネットで過去問を解きながら、自力で考えてわからないものに出会ったら、それに関することを本で読むというやりかた。この過程の中で、自力で解こうとする部分であまりにも知識がないため、問題を考えるという行為ができずに、すぐ本を見てしまうことになり、知識が身につかないような気がしている。それよりも、問題を見てわからないと思ったら、キーワードから本の中の該当部分を自分で探して、問題に解答する方が、答えを選択するまでに「自分で探す」という手間をかけているので、そこの知識が定着しやすいように思う。今の知識の段階では、このやり方のほうがよさそうだ。これまでやっていたやり方は、ほとんどの範囲をカバーする知識が付いた状態で、抜けや漏れをなくすためには有向かもしれない。

今後は以上のやり方で、学習を進める。時間としては一日最低60分はやるとして、3月28日までに、ランダムで30問解いて正解率8割をノルマに設定しよう。

 

基本情報とは別の話題をもう一つ。昨日、twitterでフォローしている方の新しく更新されたブログの記事を読んだ。その方は現在M2で、6年間の学生生活を振り返る内容だったが、これがなかなか自分の心に響いた。その方のB3までの内容を見ていると、自分とそれほど変わらない生活をしている雰囲気だったが、B4以降は留学や論文の執筆などかなり精力的な活動をされていて、「今の自分が来年以降このようになれるのだろうか」という不安と期待感が混ざった不思議な感情におそわれた。いったい自分は何をすれば前に進めるのだろうか。ICPC?数学?TOEIC?海外旅行?最近このようなことばかり考えている。

残りの春休み

3日前、この春休みの一つの大きなイベントであるTOEICが終わった。一つ肩の荷が下りた気がする。しばらくTOEICの勉強は、発音の練習と音読だけにする。これからの勉強法は、結果が出た後、大学のアルクから派遣されているTOEICアドバイザーの方と相談しながら決めようと考えている。特に、演習と単語についてアドバイスをもらいたい。

初めて、受けたTOEICからちょうど1年だが、ほとんど進歩が感じられない。だってそもそもこの一年間、英語の勉強について習慣化できたことが何一つないのだから当然である。なんとなくやってる気になっていたけど、冷静にかけた時間を考えると量が少なすぎる。その意味では、今やってる勉強時間を徹底的に記録するやり方は、この2週間はそれなりに機能している。この習慣を続けたい。

 

TOEICが終わったのは良いが、不安材料がいくつかある。

     1.読む予定の本が残っている。

     2.基本情報の勉強時間が足りていない。

     3.やるべき数学の教科書の進度が遅い。

     4.Arduinoの作品のアイディアが出ない。

まず1について。「暗号技術入門」、「コンピュータて」、「一冊の手帳で夢は必ずかなう」の3冊にまだ全く手を付けていない。今は「フリーソフトでつくる音声認識システム」を進めている。この本の後半は実習になっているが、それをやるかは時間と相談。

2について。手軽に選択問題を解いて解説を読むだけなので、隙間時間や、ほかのやる気が出ないときに進めれば何とかなる気がしている。

3について。初めは、最適化数学の教科書をやるつもりだったが、自分の線形代数の知識の不足のために、予想以上に読み進めるのが困難だったため、線形代数の教科書を一冊やった。さらに、線形代数と最適化をつなぐための本として「これならわかる応用数学教室」を現在やっている。この本は、大学数学の広い範囲を横断した内容で、また大学数学に対する心構えなどの解説もある。自分が2年生までで受けた講義の内容で理解不十分な点についてカバーされているため、このタイミングでやりたくなった。最適化数学の重複している内容も多い。そういうわけで、なかなか当初の目的であった最適化数の教科書までたとりつかない。しかしながら、確実に自分の足りない部分を埋めていっているはずなので必要な過程ではあると思う。また、このような数学の勉強の仕方やこのタイミングでやる意義についての不安もなくはないので、今度の相談教員との面談で少し聞きたいとも考えている。

4について。これが一番深刻かもしれない。3月25日に前回の作品を改良したものを友人と見せ合うことになっているが、いまだにアイディアが出てこない。なんとかしなければ。明確な基準の第三者の評価の無い、「好きなことをやる」という目標を与えられた時の自分の弱さを改めて感じてしまっている。

 

以上は、もともと予定にあった事項だが、ここ1週間で競技プログラミング熱がやっと出てきたのでこのまま競プロの勉強もやりたい。近くはICPCという目標もある。春休み中に、ABCのC、ARCのBをすべて埋めたい。

現在ICPC出場のために一人足りていない。この問題の解決のために、競プロサークルのアカウントをTwitterで登録した。だれか興味のある新入生が連絡をくれることを期待している。(新入生でなくても全く問題ないが。)

 

とにかく残りの3週間の春休みは後悔のないよう過ごしたい。ここまでの生活の最大の反省点は朝起きるのが遅いこと。26時半ごろに寝て、10時に起きる生活が続いてしまっている。理想は25時就寝、7時半起床。今日はなんとしても25時半までには寝る。