筑波大学編入体験記

令和4年度 筑波大学情報学群情報科学類 第3年次編入学試験を受験してきました.

明石高専電気情報工学科からは情報科学類4名,情報メディア創生学類3名の計7名が受験したらしいです.

受験前日,当日の話をいろいろ書いていきます.受験終わった直後書く気起きなくて合格発表後に書いてるからうろ覚えです.許して.

志望理由(?)

 最初は阪大に行けたらいいなと思ってたんだけど,基礎工と筑波の受験日が被って両方受けれなくなって絶望.あと明石から基礎工受けるメンツがやばすぎて絶対勝てないと悟ったので筑波に変更.結果として英語と物理の勉強を捨てる道へ...

前日

当日朝に余裕あったほうがいいよな~ということでつくば駅から歩いて2,3分のホテル日航つくばに前泊.

西明石~東京が3時間かそこらで行ける時代に感謝.つくばエクスプレスが思いのほか高くてビビったね.

 

 当日

7:00に前日セットしたホテルのモーニングコールで起床.8:40に人と待ち合わせてたからのんびり朝ごはんやら準備やらしてた.やっぱつくば駅近くのホテルでよかった~という気持ちに.試験会場へは駅から歩いて15分くらいだった気がする.近くていいね.

試験

自分は白シャツに黒のパンツ(!=スーツ)で行ったんだけど,ほぼスーツの人いなかったしTシャツとか普通の白シャツだらけだった.もっと楽な恰好で行けばよかったな~ってちょっと後悔.

試験自体は1科目しかないから大問ごとに感想書いていく.

英語はTOEICで代替とはいえ筆記試験しかないうえに2時間で大問4つ解いたら終わりとかいうの,今考えたらめちゃくちゃ怖い試験形式だな.

大問1 (数学)

(1-1) 広義積分の問題.被積分関数を見ると極座標に変換してくださいと書いているのでθが0~2π,rが0~infのいつものやつをすると解ける.

(1-2) 同じく広義積分.だけど問題見たとき何も浮かばなくて,2分くらい考えたけど何も湧いてこなかったから飛ばした.少なくとも典型問題ではないはず...

(2) 問題見た瞬間,微分方程式を出すな範囲に入ってないだろカス!という気持ちに.まぁ普通に発想問だと思うけど何も思いつけずに結局白紙で出した.傾向変化やめて...

大問1は(1-1)しか解けてないので3割強,破滅です.

大問2 (数学)

(1) 5本のベクトルが与えられてそれぞれの一次関係調べる問題.ベクトル並べた行列を基本変形するだけ.

(2-1) W={(x y z) | x^2-y^2+4z^2+4xz=0}を二つの部分空間に分ける問題.こいつ慣れてなくてよくわからんかった.x^2-y^2+4z^2+4xz=(x+2z)^2-y^2だから,{(x 0 z) | (x+2z)^2=t}と,{(0 y 0) | y^2=t} (t:実数)のふたつに分けた.あってるかはわからん.

(2-2) Wが部分空間か調べる問題.和について閉じてないから部分空間じゃないね~って書いた.

大問2は多分10割,(2-1)で引かれてても8割強はあるはず.

大問3 (情報基礎)

(1) ビンソート (2)分布数え上げソートの問題だった.実際の整列動作を示したりコードの穴埋めしたり,安定整列について答えるちょっとした知識問題について問われたこと以外は概ね例年通りの内容.受験前週あたりに定本Cを読んでいたため当然解けました.全員読みましょう.(正直なところ,ビンソートと分布数え上げソートは出ないだろうって思って流し読みだったからかなり危なかったしここでかなり時間とられた.)

筑波の情報は知識がなくてもコードが読めれば解けるので頑張って解読しましょう...

大問3は多分10割,悪くて9割.

大問4 (情報基礎)

(問題文1行目) 本問題ではバーコードの規格の一つであるJapanese Article Number (JAN)コードを取り上げる.

ということでまじで見たこともない問題が来た.問題文1枚丸々JANの規格の話で埋められてて解読するだけで時間めっちゃ溶けたし,そもそも小問も問題文長すぎて何を問われてるのか分かりづらかった.全部分かったうえでもう一回問題文見ると大したことない問題なんだけど,なにせ初見すぎてめちゃくちゃ焦ったしこの中盤から残り時間にも追われて頭回んなくなってたね.本番って怖いなって感じ.

(1) 実際のバーコードが与えられて,それがどんなJANコードを表すか示す問題.7つずつに区切って変換表の通りに変換すればOK.

(2) 2進-16進変換するだけ.懐かしかった.

(3) 67個のビットデータを要素数9のunsigned charの配列barcode[]に格納する(8 bit * 9 = 72 bitより)ときに,nビット目を操作するための関数を完成させろ,みたいな問題.

丁寧に図がついてるので見ながら考えると,barcode[n/8]のn%8ビット目を見れば良いとわかる.

(4) こいつにめちゃくちゃ時間とられた.バーコードのデータからJANコードのm+1桁目を表示する関数を完成させる問題.このあたりから時間やばくて問題用紙にメモすらとってないのであんまり覚えてないけど,(2), (3)で作った関数使っていいって書いてるのに一個も使わなかったことだけは覚えてる.一応全部埋めたけど間違えてそう.

(5) ここに到達した時点で残り時間5分だった.パリティチェックの問題で,検出できないケースを考えろ.みたいなのが出た.冷静に考えたらすぐわかりそうな問題なのに焦りで全然思いつかなかった.

大問4は少なくとも7割,(4)が奇跡的にあってたら9割弱とかかなぁ.

全体の手ごたえ

 

数学/情報基礎合わせて4問全体で正答率7割強くらいだと思う.8割が例年のボーダーって聞いてたからこれ落ちたわって思って帰りの電車内でめちゃくちゃ下向いてた.

 

結果

合格!春から関東です.授業中に発表だったんだけど,自分の番号見た瞬間過去一の安心感と嬉しさに包まれたね.泣きそうだった.

 

でも残念ながら明石から受けたほかの6人は全員落ちてました.今年は阪大基礎工と受験日が被ったから猛者少なくて結構受かるかなとか甘い考えしてたんだけど,編入は思ったより厳しいらしい.

手ごたえ的には自分とほぼ変わらなそうな友達も落ちてたから自分がちょうどボーダーくらいなんだと思う.TOEICの英語換算が満点だったのが結構効いてそうで,ちょっとでも低かったら落ちてた気がする.

まとめ

数学はちょっと難化してたかな.大問1完答できてるひとはかなり少ないと思う.

情報基礎は例年通りくらいの難易度な気がする.焦らずに落ち着いて読みましょう...

TOEICは頑張って730点以上取ろう.4年前半くらいのまだ編入勉強と被らない時期に取っておけるとベストだと思う.親に無限円出してもらえる場合は上振れ狙いでいっぱい受けるのもアリ.100/300がここで確保されてると思うと落とすのもったいなすぎるので.

以上!受かってよかった!文章ぐちゃぐちゃでごめん!!合格祝い待ってます!!!

www.amazon.jp

半年以上かかってAtCoderでやっと緑になった話

AtCoderを始めて(というか競プロを始めて)7か月経ってやっと緑になることができたので、緑までの道のりをぐだぐだ書きます。

とりあえず

f:id:Zono_0317:20180415161027p:plain

レートの推移はこんな感じです。

灰色前期はB問題安定なんて程遠いくらいの実力でした。

緑になるまで24回もかかっています...遅いですね。

緑になるまでに具体的になにをしたのか

 

灰色~茶色になるまで

この時期は、ひたすら簡単な問題を解きました。

具体的には、ABC-A,Bを全部埋めました。f:id:Zono_0317:20180415162557p:plain

これは、今まで、どのレベルの問題をどれだけ解いてきたかを表す円グラフです。

ABC-A,Bは灰色の終わりごろにはすべて埋めていました。

(kenkooooさん(Twitter:kenkoooo)が作ったAtCoder Problemsというサイト(上のグラフもそのサイトのもの)で自分がどれだけACしたか、ライバルがどこをACしているかなどがわかります。便利です。使いましょう。)

逆に言えば、ABC-A,Bが安定して解けるようになれば、確実に茶色にはなれます。

頑張って過去問を解きましょう。

(ちなみに、わからないときにほかの人のコードや解説をみるとあっこれ便利だ!って思える小技を身につけられたりします。)

茶色~緑色になるまで

茶色になってからは、ABC-A,Bを2完するだけではなかなかレートが伸びなくなってきます...

(実際、茶色中期あたりで2完しかできなかったときはレートが下がってしまいました。)

つまり、茶色から緑色に上がるにはC問題を(たまにでもいいので)解けるようになるのが不可欠です。

となると、やはり過去問を解くしかありません。

ABC-Cや簡単なAGC-Aなどを解くと、発想力、実装力ともにかなり成長できるので、がんばって解きましょう。

300点まではできるだけ自力で、400点以上は少し考えてわからなければ解説など、指標を立てておくのもいいかもしれません。

400点問題ぐらいまでは、このアルゴリズムを知らなきゃ解けないぞ。という問題はほぼないので、ある程度の発想力と、それを実装できる力を養いましょう。

 

おまけ(ここからが結構重要かもしれない)

ここまで、問題を解こう!とずっと書いてきましたが、実際には問題をずっと解き続けるほどモチベーション保つのはかなり難しいです(というか自分には無理でした)

ここからは、自分がどうやって競プロに対するモチベーションを保ってきたかについて、いくつか方法を紹介します

 

1.とりあえずTwitter始めよう

ふざけているわけじゃありませんw

実際、自分もTwitterで競プロ界隈の方々をフォローしてから、レートが伸び始めました。

Twitterには強い人がいっぱいです。

中学生で青色になってる人や、ベラルーシには、10回以上コンテストで優勝してレートが4000を超えているバケモノ...凄い人もいます。

もちろん、自分と同じくらいのレート帯の人だってわんさかいます。

そういう人達と一緒に教えあったり、自分のコードのどこがダメなのかを見てもらったりするだけで、もの凄い刺激になります。

 

2.ライバルを作ろう

一人で競プロをしていても、(自分の場合)あまりやる気が出ません。

コンテストに出るとき、同じぐらいのレートの人と、今回は俺が勝つ!とか張り合うだけで、コンテスト中のやる気が段違いです。

学校の同じクラスとか、リアルで会える人がいればベストです。

さっきも言ったように、Twitter上でライバルを作るのもとてもいい方法です。

(自分の場合は学校にもTwitterにもって感じです)

 

3.アルゴリズムの勉強

これはモチベの維持とはあまり関係ないのですが(おい)

緑になるまではほぼ必要ないのですが、それから先の問題はこのアルゴリズム知っとかないと解けないよ。って問題が増えてきます。

(逆に、知っていれば比較的楽に解ける)

そこで、今まで自分が勉強してきたアルゴリズムを少し紹介します。

幅優先探索(BFS)、深さ優先探索(DFS)、Warshall-Froyd法、いもす法、(簡単な)動的計画法(DP)、(貪欲法)

自分が現時点で知っているなかでパッと思いつくのはこのへんですかね。

勉強しといて損はないです。

Union-Find木などの木構造の勉強もがんばりたいところです。

 

初心者向けのなにか

競プロ始めたばかりだよ~って人は、drken(Twitter:drken1215)さんの

qiita.com

この記事を見たり、この記事の中から選ばれてるAtCoder Beginners Selectionをやってみるといいと思います。

このコンテストを全完できたら、緑まではもうすぐです。 

 

前述のアルゴリズムの勉強に良さそうな問題

1.D - Wall

D問題ですが、Warshall-Froydを使えば驚くほど簡単に解けます。

2.C - 柱柱柱柱柱

基本的なDP問題。このぐらいは書けるようになっておくと安心。

3.C - オセロ

いもす法の問題。割と書きやすい方。

4.C - 幅優先探索

 幅優先探索を書くために出された問題といっても過言ではない。

5.D - Katana Thrower

貪欲法の勉強にいいかもしれない。

 

最後に

ここで書いたのはあくまで自分がどうやって緑になったか、であって競プロer全員に共通するものではありません

あくまで参考までに...

なにはともあれ、緑になれてよかったです!!

早く水色になってこの記事の続きを書きたい!!!