RedSpica Winter Selectionを開催しました
こんにちは
RedSpicaです.12月29日(木)にRedSpica Winter Selectionというコンテストを開催しました.
非常にたくさんの方にご参加いただきました.本当にありがとうございます.せっかくなので感想的なのを書き残しておこうと思います.
- 1.You Want to Play?
- 2.Closeness of the Day
- 3.Count Up Ikkyu
- 4.Find a RedSpica
- 5.Partition of N
- 6.Load to cocoa
- 7.Knapsack Expect i-th
- 8.MakeMany Buri-Oden
- 9.Function Composition
- 10.その他
- 11.全体の感想
1.You Want to Play?
FA 0:59bayashikoさん
今年の夏休みは本当にずっとValorantをしていました.ずっと目標としていたゴールドに達することもできました.
問題概要もゲーム内の設定そのままです.題名はChamberというエージェントがアルティメットアビリティを使う際のセリフ「遊びたいのか?相手になろう」の英語版"You want to play? Let's play"からとりました.リンクには今年開催されたVCT2022 Stage1 Masters-ReykjavíkでのTenZ選手の配信の切り抜きが埋め込まれています.SugarZ3ro選手がACEで試合を終わらせるすごいシーンなのでよければ見てください.
2.Closeness of the Day
FA 5:12 bayashikoさん
2問目なので簡単なループっぽい問題にしたいものの,なんか特殊な問題にしたかったのでだいぶ前にTwitterで見たものを原案にしました.
2022年の1/19が終わってしまった(ダブル・ミーニング)
— kakiraちゃん☃️ (@kakira9618) 2022年1月19日
知っていた方はTextで提出してもらっても,知らなかった方は愚直にループを回して計算してもいいです.言語によっては日付を持ってこれるライブラリがあるらしいのでそれを用いてもいいです.
想定解はそれぞれの月の日数を手打ちで打ってループ回すみたいなのなんですが,それを手打ち(知らない場合は調べてから手打ち)するくらいの面倒くささは許してください.
3.Count Up Ikkyu
FA 7:23 hourenさん
ある数学の本を見てたら原案が生えたので解答を見たら結構きれいでびっくりしました.なんかこういうの有志コンで出たらまあまあ嫌なので出さないようにしたいなって思っていたのですが,まあいいかなと思い出しました.よかったら解説の閲覧&いっきゅうのフォロー↓お願いします.
https://twitter.com/ikkyufacku
4.Find a RedSpica
FA 13:14 roarisさん
与えられた状況を無向グラフとして見たとき,各連結成分の頂点に書かれた数字のうち1番大きなものが書かれているものが赤である頂点を数える問題です.解法はUFでもグラフの探索アルゴリズムでもなんでも解けます.ただMojaCoder上のジャッジステータスの関係でちょっと困惑した方を数名みかけました.コンテストのトップページに書いておけばよかったですね,配慮不足でした.PythonでDFSを書いた方は再帰の回数の上限を上げているかどうかを確認してみてください.
オリヴェルっていうのは僕が小学校の頃やっていたネットゲームで飼っていたペットの名前です.特になにかを参考にしたわけではないんですが,中二感があってなんかかっこよくないですか?
グラフの各頂点を星と見立てて,連結成分を1つの星座とみる.なんかいい感じですよね.問題名もシンプルでなんかかっこいいと思っている結構自信作です.
リンクにはレヴュースタァライトの星見純那さんの紹介ページが埋め込まれています.「人には定めの星がある,綺羅星 明星 流れ星」というのは彼女の口上で,舞台に登場した際に発するセリフです.
サンプル2の各星のつながれた関係は実際のおとめ座の関係を参考にしました.星の等級というのは数字が小さいほど明るいので,明るい順に暗い星の等級を振りなおしました.「頂点に立つのはただ1人」というのはこれもレヴュースタァライトの天堂真矢さんのセリフです.「This is 天堂真矢」でおなじみです.
5.Partition of N
FA 5:48 17さん
に対して,重さが,価値が,許容容量がであるナップザック問題を解く問題です.
自分が考えた問題はいくらでも簡単に見えてしまうのを考慮してなかったのですが「ナップザック問題に落とすの賢い」といった感想を何件か見たので意外とむずかしかったのかなあとこの場所/点数に設定したのが少し反省です(実際5問目と6問目の正解者数が逆転していました).問題文が読みづらい/サンプルが少ないみたいな感じで誤読を誘っていたら本当に申し訳ないです.
「は互いに異なる」という条件が入っているのは,これがないとを個用意してを達成して終わってしまうからなんですね.とはいえ01ナップザック問題を解くならあまり関係ないのですが.
リンクには12 Days Of Christmasという歌が埋め込まれています.この歌は歌詞を見ると「1,2,1,3,2,1,4,3,2,1,...」という感じで数字を数え上げるのですが,それが「互いに異なる数字を合わせる」とか「この問題の計算量がとなる」みたいな感じで若干ヒント?でした.あとクリスマスが近かったのもあります.
6.Load to cocoa
FA 9:38 17さん
地点からのDijkstra法と地点からのダイクストラ法で2つの配列をもつのが想定解です.頂点を3倍して1つの配列でやるみたいな解法で解いてる方もいたようです.
問題準備が終わってから典型90問にほぼ同じ問題が出題されていることに気づいたのですが,せっかく書いたので出題しました.かなり典型テクニックということですね.
この問題のテストケースを作ってる時に思ったんですが,
頂点辺のグラフを考える.以下の操作をグラフが連結になるまで続ける.
・を満たすをランダムに決める.
・もしとが連結でないならば間に辺を張り,そうでないならば何もしない
っていうのって操作回数の期待値ってどれくらいになるんですかね?テストケースを作ってる時の感じではの時でも結構一瞬で生成できて,個人的には「コンプガチャの要領で回くらいかな」と思ったのですが証明ができず.何かわかった方がいたらご一報ください.
リンクには七河みこさんのユニバースの動画が埋め込まれています.彼女は世界各地に旅行をするのが好きで,いろいろな場所に1人で行くそうです.問題とかかってる部分は旅行と移動くらいなんですが,とてもいい動画なのでよければ見てください.
7.Knapsack Expect i-th
FA 17:49 17さん
左右からナップザック問題を解いて,それを利用して各に対して問題をうまく解けばよいです.添え字をバグらせないように注意が必要です.
「両端からやる」「ナップザック問題を解く」というのが5問目と6問目で若干かぶるのでどういう問題配置にしようかなと思っていました.しかし感想を見ている感じこれも問題作成者はいくらでも簡単に見える理論からあまり関係なかったようです.
最近は軽装で旅行行くの慣れました
— コンテストでません (@niboshi_wakai) 2022年12月30日
コンテスト中LayCurseさんがかなりの時間この問題で詰まっていたのでこっちの不備があったのかと思って滝のような汗を流していました.無事に正解していただけてよかったです.
リンクには北海道大学の石川先生の質問解答PDFが埋め込まれています.2年前に位相空間論の授業を受けているときにネットの海でこのPDFを見つけた覚えがあります.コンパクトの定義のたとえが結構しっかり焼き付いていたので引用させてもらいました.
8.MakeMany Buri-Oden
FA 3:09 dyktr_06さん
を求める問題です.なんと既出らしい.
8番のFAを取りました (3:09)
— やきとり (@yktr_drm06) 2022年12月29日
過去にほぼ同じ問題を作っています……https://t.co/rsEZ8EWCss
セグ木に載せて二分探索が想定なのですが,他にもいろいろな解法で解けるようです.
実はコンテストはこの問題を除いた8問100分でやる予定だったのですが,急にこの問題も思いついたので問題数を増やして時間も少し伸ばしました.せっかくburiodenさんから名前をお借りしたのにむずかしめの問題になってしまったのは少し申し訳なかったです.
富山県は鰤が有名らしいのですが,卒業するまでにおいしいのを食べてから富山を出ていきたいですね.そもそも卒業が怪しいですが.
リンクに埋め込まれているのは乃木坂46のジコチューで行こう!です.MVも曲もとても良いです.
9.Function Composition
FA 6:20 LayCurseさん
剰余を取る値が小さいのでダブリングで前計算ができます.「関数の合成がダブリングの本質ではないか」と考えているところがあり,逆にそれをそのまま出したら面白いんじゃないかと思って出題しました.
コンテスト中にある参加者の方から「はでは?」という趣旨の質問をいただき,追加で説明を書きました.その質問をもらって急いで調べたところ,と記述しているページが1番最初にヒットしたのでリサーチ不足だったかなと反省です.ただ,今回のコンテストであった不備はこれくらいだったのでよかったです.
この問題も値を計算する際のオーバーフローで不正解となる提出がジャッジステータスが意図したものと違うものが出て困惑した参加者の方もいたようです.「解法は合ってるはずなのにACにならない」という方はオーバーフローしていないか確認してみてください.
リンクには虹のコンキスタドールのサマーとはキミと私なりっ!!が埋め込まれています.虹のコンキスタドール通称虹コンは夏曲を全面的に押しているグループで,この曲は虹コン7年目に出された夏曲です.”何度も”が6個続いているのはこれまでの6年を表しており,この曲が7年目だよというアピールになっているようです.
10.その他
優勝 41:13 ei1333さん
全問完答者 10名
1st 41:13 ei1333さん
2nd 46:50 + 5:00 LayCurseさん
3rd 57:03 + 5:00 bayashikoさん
4th 73:57 +15:00 akuaさん
5th 80:10 + 10:00 ecotteaさん
6th 87:15 + 10:00 roarisさん
7th 99:51 + 15:00 Daylightさん
8th 99:21 + 25:00 siganaiさん
9th 114:51 + 15:00 dyktr_06さん
10th 111:14 +25:00 mikamさん
各問題正解者/提出者
1.You Want to Play? 58/59
2.Closeness of the Day 58/58
3.Count Up Ikkyu 49/50
4.Find a RedSpica 53/54
5.Partition of N 33/33
6.Load to cocoa 40/40
7.Knapsack Expect i-th 23/20
8.Make Many Buri-Oden 18/22
9.Function Composition 14/17
11.全体の感想
改めて本当に多くの方にご参加いただきありがとうございました.夏に開催した際は30名弱の方に参加していただいたので今回もそれくらい参加してもらえるといいなと思っていたところ予想を大幅に上回る参加者でとてもうれしく思います.また,特に不備もなくコンテストを終了することができてよかったです.
終了後の感想は(観測できる範囲で)すべて見させていただきました.「楽しかった」というものをはじめとしたさまざまな感想を寄せていただきありがとうございます.励みになります.
開催中/開催後に思ったのですが,やはりこのセットで120分は少し短かったですね.「自分が作った問題は簡単に見えてしまう」+「ためていた原案はすべて吐きたい」+「有志コンで時間が長いと集中力が切れる/のちの感想共有の時間が深夜になってしまう」→「このセットをこの時間で行こう」というのが理由です.それでも上位勢はしっかり時間内に全問完答していてさすがだなと思いました.
個人的にはAtCoder水色くらいで戦える典型的な問題/よく考えればわかる問題をそろえたつもりです.解説も書いたのでよければ解けなかった問題もあきらめずに挑戦してみてください.
コンテストを開催するにあたり全体テスターを引き受けてくださったzeronosu77108さん
問題文のおはなしに登場してくれた競プロ仲間のみんな
素晴らしいコンテストサイトを提供してくださったマクタモトさん
そして最後になりますが,コンテストに参加してくださった参加者の皆さん,この度は本当にありがとうございました.
またコンテストを開催する機会があったときはぜひご参加ください.
RedSpica
ABC202 D - aab aba baa 別解
ABC202 D - aab aba baaの桁DP+二分探索を用いた解法の解説です.
問題概要
個のa
と個のb
からなる長さの文字列のうち,辞書順で番目のものを求めてください.
制約
・
・個のa
と個のb
からなる長さの文字列が少なくとも個は存在することが保証される
解法
a
を,b
をに直します.すると,a
とb
からなる文字列は2進数とみなすことができます.
この操作をしたあと,元の問題は「が回使われている2進数の小さいほうから番目の数は何か」と言い換えることができます.
桁に満たないものは桁になるまで先頭にをつけ足せばが個という条件を満たします.また,同じ桁数同士の整数の大小関係はそれを文字列として見たときの辞書順の大小関係と一致します.よって,上の言い換えが成立することがわかります.
次に以下の小問題を考えます.
・2進法表記された整数以下にが回使われている数は個未満かどうか
であって,十分大きな整数に対してはです.また,がとなるならばを満たす任意のに対してです.同様に,がとなるならばを満たす任意のに対してです.よってこの小問題には単調性があり,あるが存在してとなります.この時のが答えとなります.
小問題の判定について考えてみましょう.「〇〇以下の条件を満たすものの個数」という問題は桁DPというアルゴリズムを用いて求めることができる場合が多く,今回もそれを用いて判定することを考えます.
配列の定義
上から桁目まで見て,の個数が個で,より小さいことが確定しているかどうか(がならちょうど,ならより小さいことが確定)
遷移
・からはにのみ遷移
・からに遷移
・からに遷移
それぞれの遷移ごとにの値を増やしたりそのままにしたりして遷移します(詳しくは僕の提出を参考にしてください).
判定内容
を2進数表記して,その桁数をとすると, かどうか
以上の方法を用いて小問題を構成します.
先に述べたようにこの小問題には単調性があるので,二分探索を用いて答えとなる整数を求めることができます.最後に求めた答えを2進数に変換し,をa
に,をb
に変更した文字列が最終的な答えとなります.
小問題を回解くごとに,の桁数をとするとであり,二分探索の探索範囲をとすると小問題を回程度行うので,全体としての計算量はとなり,この問題の条件下では十分高速です.
Bonus問題
a
が個,b
が個からなる文字列が与えられます.a
が個,b
が個からなる文字列すべてのうちは辞書順で何番目か.で割ったあまりを求めよ.(要するに元の問題の逆操作です)
・
おもしろかったAtCoderの問題たち
こんにちは
RedSpicaです.今まで解いてきたAtCoderの問題のうち「おもしろいな」と思ったものを紹介します.知らない間に追加されたり消されたりします.
点数とかDifficultyとか出題日時は解く前に見て欲しくないので載せていません.問題概要を見て解けそうだったらチャレンジしてもらって,無理そうだったら諦めてください.難易度順に並んでいるとは限りません.
問題一覧
・一問目
・LEQ
・Product of Arithmetic Progression
一問目
問題概要
文字列の頭文字を出力してください.
制約
・
・は半角英数字からなる文字列
LEQ
問題概要
長さの整数列が与えられます.の連続するとは限らない,長さが以上である部分列のうち以下の条件を満たすものの個数を求め,で割ったあまりを求めてください.
条件:
制約
・
・
Coprime Present
問題概要
以上以下の整数が書かれたカードをそれぞれ枚ずつ,計枚持っています.以下の条件を満たすようなカードの選び方(選ぶ枚数は枚でもよい)は何通りありますか.
条件:選ばれたカードのどの相異なる枚に書かれた数も互いに素である.
制約
・
・
GCD on Blackboard
問題概要
個の整数のうちつ選んで好きな正整数に書き換えます.書き換えた後の個の整数の最大公約数の最大値を求めてください.
制約
・
・
2017-like Number
問題概要
以下の条件を満たす奇数を2017に似た数とします.
条件:もも素数である
ここで以下の問に回答えてください.問の形式は以下の通りです.
問:が与えられるので,以上以下の2017に似た数の個数を求めてください
制約
・
・
joisino's travel
問題概要
頂点辺の無向グラフが与えられます.辺は頂点と頂点を結んでいて,その距離はです.あなたは頂点を訪れることになりました.訪れる頂点の順番を適切に選んだときその移動距離の最小値はどうなるでしょうか.
制約
・
・
・
Easy
・
Hard
・
・与えられるグラフは多重辺や自己ループを持たず,どの頂点間も辺を経由して移動することができる
Anything Goes to Zero
問題概要
をを進数表記したときの1
の個数とします.たとえば,です.
を「をで割ったあまりに置き換える」という操作を繰り返した際にがになるまでの操作回数とします.
以下はの例で,回の操作でがになります.
・なのでをで割ったあまりであるに置き換える.
・なのでをで割ったあまりであるに置き換える.
進数表記で桁の整数が与えられます.を満たす整数について,の上から桁目のビットを反転した整数をとします.をそれぞれ求めてください.
制約
・
・は進数表記で桁の(先頭がとは限らない)整数
Product of Arithmetic Progression
問題概要
以下の問に回答えてください.問の形式は以下の通りです.
問:初項,公差,項数の等差数列の総積,つまり
をで割ったあまりを求めてください.
制約
・
・
・
Balanced Neighbors
問題概要
頂点にからの番号がついた頂点の単純かつ連結である無向グラフであって,以下の条件を満たすものをつ構成してください.
条件:ある整数が存在して,任意の頂点についてその頂点に隣接する頂点の番号の値の和はとなる
条件を満たすグラフが必ず存在することが証明できます.
制約
・
01 Matrix
問題概要
行列からなるマス目をかで埋めることを考えます.以下の条件を満たす埋め方をつ示してください.不可能な場合はそれを報告してください.
条件
・どの行についてもその行に含まれるの個数との個数のうち小さいほうがである.
・どの行についてもその列に含まれるの個数との個数のうち小さいほうがである.
制約
・
・
・
・
GCD Sequence
問題概要
正整数の集合が以下の条件を満たす場合特別な集合であると言われます.
条件:どのについてもとのその他の要素の和の最大公約数はではない.
要素数の特別な集合であって,であり,であるものをつ求めてください.この問題の制約下では条件を満たすものが少なくとも1つは存在することが保証されます.
制約
・
MAD TEAM
問題概要
人のメンバーがいて,それぞれのメンバーはつのステータスがあります.人目の個目のステータスの値はです.便宜上人目のメンバーの番号をとします.
人の中から人を選んでチームを組みます.人のメンバーの番号がであったとき,そのチームの総合力は以下で計算されます.
チームの総合力
このとき,チームの総合力としてあり得る最大の値を求めてください.
制約
・
・
Equal Weight
問題概要
からまでの番号がついた個のシャリと,からまでの番号がついた個のネタがあります.シャリの重さはで,ネタの重さはです.
あなたは寿司の握りをつ作りたいです.つの握りはちょうどつのシャリとネタを組み合わせ作ることで作られます.
あなたはつの握りの重さが等しくなるようにしたいです.これが可能かどうか判定し,可能ならばその作り方をつ示してください.なお,同じシャリやネタを回使うことはできません.
制約
・
・
・
・
・
Built?
問題概要
平面上に個の街があり,個目の街は座標にあります.同じ座標に複数の街がある場合もあります.座標にある街と座標にある街の間に道を造るのには円かかります.街と街の間以外に道を造ることはできません.
任意のつの街の間を,道を何本か通って行き来できるようにするためには最低で何円必要でしょうか.
制約
・
・
Keep Graph Connected
問題概要
からの番号が付いた個の頂点とからの番号が付いた本の辺からなる連結な無向グラフが与えられます.このグラフには多重辺が存在するかもしれませんが,自己ループはありません.
このグラフのそれぞれの辺には以上以下の整数で表されるラベルがついています.辺にはラベルがついており,頂点を双方向につなぐ辺です.
あなたはそれぞれの頂点に以上以下の整数を書き込んだのち(頂点に書き込まれた整数に重複があっても構いません),以下の条件を満たす辺のみを残してそれ以外の辺を取り除くことにしました.
条件:辺の両端の頂点に書き込まれた整数をとして,のいずれか一方のみが辺についたラベルと等しい
上記の条件を満たさない辺を取り除いたあとのグラフも連結のままであるような頂点への整数の書き込み方が存在するかどうか調べ,存在するならその一例を,存在しないならば存在しないことを報告してください.
制約
・
・
・
・与えられるグラフは連結
・与えられるグラフに自己ループはない
Packing Potatoes
問題概要
ベルトコンベアに載って個のじゃがいもが個ずつ流れてきます.流れてくるじゃがいもの重さは長さの数列で表され,番目に流れてくるじゃがいもの重さはです.ここで,はをで割ったあまりを表します.
あなたはまず空の箱を用意し,次のルールに従ってじゃがいもを順番に箱に詰めていきます.
・じゃがいもを箱に入れる.箱に入ってるじゃがいもの重さの総和が以上になったらその箱には蓋をし,新たに空の箱を用意する.
個のクエリが与えられます.番目のクエリでは,正整数が与えられるので,番目に蓋をされた箱に入っているじゃがいもの個数を求めてください.問題の制約下で,蓋をされた箱が個以上存在することが証明できます.
制約
・
・
・
・
留年宣告を受けました
こんにちは
「留年した」という文章ってどの時系列を指しているかよくわからないですよね.単位が認定されずその学年をもう1度繰り返すことが確定した瞬間なのか,その繰り返した学年が終わったときのことなのか.
その点では「留年しそう」という文章は時系列がわかりやすく,確実に「その学年をもう1度繰り返す前」のことを指していることがわかります.
僕の今の状態は少なくとも「留年しそう」ではなくなりました.悪い意味で...
「単位が認定されずその学年をもう1度繰り返すことが確定した」ので,なんでこうなっちゃったかなーと反省しながらこれまでの大学生活を振り返ります.
1年生前期
授業開始日を間違えて,初日の授業を知らぬ間に切ります.は?この時点で今後の大学生活がかなり不安になりました.
そして,友達ができません.新入生の知り合いを作ろう会みたいなものにことごとく出ていなく,自分から他人に話しかける勇気もありません.「まあひとりでもなんとかなるでしょ」と思っていたのですが,大学生活で友達がいないというのは余程強い人間でもない限り詰みます.このことを詰んでから知りました.履修登録のこと,授業開始までのイベントのこと,授業開始日のことはすべて自分で把握しておく必要があります.
幸いにも学科の授業が始まった時に出会いがあります.前の席に座っていた学生が,僕の書いたアンケートの名前をみて「ツイッターのアカウントこれでしょ」と告げてきます.彼と仲良くなり,彼伝いでいろいろな人間と出会います.
人との出会いに,感謝______
それから割と生活は順調だったのですが,GWが明けたあたりからいろいろと考え込んでしまい学校に行かなくなります.たぶん五月病というやつです.1か月半くらいの間あまり学校に行かない日々が続きます.7月の頭くらいからまた学校に行き始めるのですが,時すでに遅しといった感じで単位が死にます.明らかに出席日数が足りてないのとか,明らかにテストの出来が悪いのに単位が出た授業もあって「なんだこれ」となっていましたが,最初の1か月まじめにやっていた貯金だと思ってありがたく受け取りました.
1年生後期
1番順調だったと思います.1年前期で何も学べなかった解析学を教科書読み込んで前期に授業でやったところまでは理解して,後期の解析学にもついていけておもしろかったなーと思いました.
僕が所属する学部では「英語コミュニケーション(英会話の授業)」と「英語リテラシー(座学の授業)」の2種類を1年の前後期併せて4つとらないといけません.しかし,TOEICで規定の点数以上を取るとそのうちの何個かを単位認定という形で消すことができます.
僕は偶然にも前期に受けたTOEIC IPテストで規定以上の点数を取っていたので,後期の英語コミュニケーションを消すことにした(コミュ障なのでできるだけ会話型の授業は避けたいから)のですが,英語リテラシー初回の授業で「この授業の目標は英語を理解することではなく楽しく話せるようになることです」みたいなスライドを見せられて「?????????」となり,僕が単位認定によって出なくてよかった英語コミュニケーションの授業はガッツリ座学という話を友達に聞き「??????????」となりました.結局英語リテラシーは15回中2回くらいしか行かず単位を落としました.
2年前期
2年生が始まりました.2年生が始まる前にアルバイトとAtCoderを始めました.競技プログラミングを始めたことにより,起きてる時間は常に競技プログラミングの問題の考察をすることになります.これがかなり最悪で,これのせいで学業と生活習慣が破滅します.
決して勘違いしてほしくないのは「悪いのはすべて僕で,競技プログラミングは節度を守ってやればとても面白いコンテンツ」ということです.
競技プログラミングをやってたおかげで,数学科で開講されたプログラミングの授業で大学生活初の秀という成績がでました,やったね!
2年後期
再履修の英語はリテラシーでもコミュニケーションでもいいというガバガバルールなので,2年後期で英語リテラシーを履修しようとするのですが,履修登録をしようとしたら英語の登録期間がすでに終わっているという罠.なんでミスったかというと,周りの友達は1年生の時に1発で取っている,ないしは2年前期までに取り終わっているという状況だったので英語を取り残しているのは僕だけだったんですね.
相変わらず競技プログラミングに熱中し,生活が壊れています.半分も出席していないような授業でもとりあえずテストを受けに行ってなぜか成功しちゃうみたいなのが3つくらいあったきがします.
3年前期
カリキュラム上必修の授業は2年生までで,必修・選択のそれぞれの単位を3年後期までに揃えないと留年が決まります.つまり,2年前期に取るべき授業の再履修を3年前期で落とすと(少なくとも)その時点で確定です.
結果から言うと,再履修で負けます.
2年後期にもプログラミングの授業があったのですが,皆欠席・テストの出来もビミョウというフルコンボを決めたのにもかかわらず良という評価が出ました.その先生が持った線形代数の授業が再履修のうちの1つだったので完全に甘く見て,それを落として3年前期で留年が決まりました.
逆に,他の「これが落ちて留年になるかもしれない」と思った科目は普通に通っていて,しっかり勉強したと思っていた(留年になるかどうかは直接関係ない)科目が落ちてそれも少しショックでした.
その後
留年が決まる瞬間ってマジでこんな感じなんです.
「まあさすがに単位出てるんじゃない?」みたいな気でいたら落ちていて,頭が真っ白になった覚えがあります.
成績が出てから1週間くらい留年したことを引きずっていたんですが,時間が経つにつれあんまり気にしなくなりました.母親から「どこかにいってしまったんじゃないか」と本気で心配されたんですが,さすがにそこまで思い込んだりはしませんでした.
柄にもなく7月末に3日間のインターンに参加したんですが,その会社から「めちゃくちゃよかったよ,ぜひうちの会社受けて」みたいなメッセージや「10月から22卒の面接あるから受けない?」ってメッセージがPaiza経由で3件くらい来ました.留年確定した次の日には「10月〇〇日に面接やるよ,当然応募するっしょ?」みたいなメッセージがきたのですが,「留年したので来年普通の枠で応募します」という旨のメッセージを送りました.一生懸命就活をしている友人曰く,これはどうやら内々定というやつらしく,大きな獲物を逃したなーといった感じです.
3年後期が始まってすぐに助言教員と面談があって(これは留年が決まったからとかではなく定期的にあるもの),その数日後に「線形代数の救済措置がとられるかもしれません」というメールが来たのですが,「企業からの誘いを蹴ってしまったのでそのまま留年します」という返信をしました.
別に数学が嫌いというわけでは断じてないのですが,正直学びたいものと今学んでいることが少し離れているなと思っていたので大学を辞める考えがないわけでもなかったのですが,「大卒と高卒じゃ給料にだいぶ差が出る」みたいな話を聞いたり,数学科の卒業研究で計算機のゼミが去年からできたりしてそれに参加したいと思ったので学校をやめるのはやめました.
最後に
数学科には「線形代数とε-δ論法は最低限できるようになったほうがいい」みたいな言い伝えがあります.これは本当にその通りで,線形代数の授業についていけないのはもちろんのこと,様々な分野で急に行列が顔を出してきて先生方も「当然これは知ってるよね?」みたいな感じで授業を進めるので線形代数でつまずくと死にます.本当に線形代数はしっかりやったほうがいい!!!!!!
それから,当たり前ですが留年はしないほうがいいです.僕のように天から降ってきた内々定をドブに捨ててしまうことになる人はもう見たくないです.
そして,学業以外の何かに打ち込むときには休学という手もありだったのではないかと思っています.国立大学の場合には無料で休学ができるらしい(僕はしたことがないのでわかりません)ので,研究や開発だけでなく,そういう制度がある以上「ゲームを本気でやるために休学する」みたいな理由があってもいいんじゃないかなと思っています.
ここまで読んでいただきありがとうございました
この記事を読んで留年する人がひとりでも減りますように
RedSpica
ゴッドフィールドって知ってる?笑
こんにちは
オススメのゲームの話をする Advent Calendar 2020 - Adventarの19日目の記事を担当します.次の日担当のにぼしの記事はコチラ(書いてくれてありがとう).去年はポケモンの記事を書いたのでよければそちらもご覧ください.
今年もいろいろなゲームをやりました.パソコンではFall Guys,Valorant,CS:GO,Rocket League,Ultimate Chicken Horseをやり,現実世界(?)ではコヨーテというボードゲームやCHUNITHMという音ゲーをやったりもしました.
そんな中でも今回紹介するゲームはGod Fieldというゲームです.
ゲームの内容を端的に説明すると,様々なカードゲームの面白い要素を集めてきたものみたいな感じです.
もう少し詳しく説明します.
ゲームは個人戦,チーム戦の2つがありますが,基本的なルールは変わりません.ゲームの開始時にそれぞれのプレイヤーはHPが40,MPが10,お金が20円配られます.MPやお金やカードを駆使して,相手を攻撃し,HPが0になったら(基本的には)負けです.
説明が下手なのとぜひとも皆さんにやってもらいたいので「とりあえずやってみて」のスタンスで書いているんですが,これだけは知っておいたほうがいいみたいなのを書いておきます.
”はね返す” と ”弾く” の違い
すごく似ているフレーズですが,少し意味が違ってきます.”跳ね返す”は攻撃してきた相手にそのまま返すことを指します.”弾く”は攻撃をランダムで1名にそのまま返すことを指します.つまり,”弾く”は自分に攻撃がそのまま通ることもあれば,全然関係ない第三者を巻き込むこともあります.”跳ね返す”は”弾く”の上位互換だと思っていればいいかもしれません.
”はね返す”という能力を持った武器があるのですが,そのカードをそのまま使うのは基本的におススメできません.
災い
ポケモンでいうところの特殊状態です.災いを持っていると場の進行がかなり不利になります.回復できるアイテムをどこで使うか(使った直後に「もうアイテムがない」と読まれて別の災いをつけられる作戦をとられることもあるので)もとても重要です.
いのちのたまのように「わざと不利な状況になるが,大幅な利益を得ることもできる」というカードもあります.回復アイテムを持っているならそのようなカードも有効的と言えます.
属性
基本的にはほとんどの武器が無属性の攻撃なんですが,属性がついた攻撃方法もカードによっては存在します.属性攻撃は(闇属性以外は)限られた属性の防具でないと攻撃を防ぐことができないため,「ここでHPを削っておきたい」というときにはとても刺さります.注意してほしいのが,「異なる属性の武器を一緒に使うと(基本的に)無属性になる」という点です.
そして,1番気をつけなければならない属性は闇属性です.闇属性の攻撃はどんな防具でも守ることができるのですが,攻撃を守り切れなかった場合即死となります.つまり,相手が闇属性のカードを持っているときに防具がないことを知られてしまうと実質負けです.
お金・MP
カードの中には「自分のアイテムを相手に売りつける」というカードが存在します.売りつけられたものは絶対に買わなければいけないのですが,お金がない時に売りつけられると1MP=1円換算でMPから削られていきます.MPもない時は1HP=1円換算でHPから削られていきます.つまり,お金もMPもない時に高額なものを売りつけることで回避不可能なダイレクトアタックを相手にすることができるので,この手でトドメを指すことも作戦のひとつです.
また,両替というカードも存在していて,「(HP+MP+お金)の値を保存したまま好きに数値を変えることができる」というものもあります.お金を貯めて一気にHPやMPに両替して場を動かすという戦略を取るときに使えます.
さいごに
どうですか?やりたくなってきませんか?そんなあなたに朗報です!なんと超超超最近スマートフォン向けのGod Fieldのアプリがリリースされたのです!!!
#ゴッドフィールド
— グウジ (@guuji) 2020年10月30日
App StoreとGoogle Playでアプリ配信中です。
iOShttps://t.co/uxWYUxNepD
Androidhttps://t.co/VGzSTMmipT pic.twitter.com/aDn4s5ELQn
そして新機能として勝負の結果に応じてレートがつく真剣タイマンモードも追加されています!
古よりインターネットに伝わるゲーム†God Field†を一緒にはじめてみませんか...?
RedSpica
ABCのAをPythonで,1行で書く
タイトル通りです.
自分のためのアーカイブみたいな感じで,新しいものを書き次第追加していきます.
ルール
・できるだけ他人の提出を見ないようにする
・できるだけ短く書く
・セミコロンは使わない
・全部埋めるのを目指す!
→全部埋まった!(2020/10/25)
アドバイスがあったら随時教えてください.
- 220~226
- 210~219
- 200~209
- 190~199
- 180~189
- 170~179
- 160~169
- 150~159
- 140~149
- 130~139
- 120~129
- 110~119
- 100~109
- 090~099
- 080~089
- 070~079
- 060~069
- 050~059
- 040~049
- 030~039
- 020~029
- 010~019
- 001~009
220~226
ABC226 Round decimals
ABC225 Distinct Strings
ABC224 Tires
ABC223 Exact Price
ABC222 Four Digits
ABC221Seismic magnitude scales
ABC220 Find Multiple
210~219
ABC219 AtCoder Quiz 2
ABC218 Weather Forecast
ABC217 Lexicographic Order
ABC216 Signed Difficulty
ABC215 Your First Judge
ABC214 New Generation ABC
ABC213 Bitwise Exclusive Or
ABC212 Alloy
ABC211 Blood Pressure
ABC210 Cabbages
200~209
ABC209 Counting
ABC208 Rolling Dice
ABC207 Repression
ABC206 Maxi-Buying
ABC205 kcal
ABC204 Rock-paper-scissors
ABC203 Chinchirorin
ABC202 Three Dice
ABC201 Tiny Arithmetic Sequence
ABC200 Century
190~199
ABC199 Square Inequality
ABC198 Div
ABC197 Rotate
ABC196 Difference Max
ABC195 Health M Death
ABC194 I Scream
ABC193 Discount
ABC192 Star
ABC191 Vanishing Pitch
ABC190 Very Very Primitive Game
180~189
ABC189 Slot
ABC188 Three-Point Shot
ABC187 Large Digits
ABC186 Brick
ABC185 ABC Preparation
ABC184 Determinant
ABC183 ReLU
ABC182 twiblr
ABC181 Heavy Rotation
ABC180 box
170~179
ABC179 Pular Form
ABC178 Not
ABC177 Don't be late
ABC176 Takoyaki
ABC175 Rainy Season
ABC174 Air Contitioner
ABC173 Payment
ABC172 Calc
ABC171 αlphabet
ABC170 Five Variables
160~169
ABC169 Multiplication 1
ABC168 ∴ (Therefore)
ABC167 Registration
ABC166 A?C
ABC165 We Love Golf
ABC164 Sheep and Wolves
ABC163 Circle Pond
ABC162 Lucky 7
ABC161 ABC Swap
ABC160 Coffee
150~159
ABC159 The Number of Even Pairs
ABC158 Station and Bus
ABC157 Duplex Printing
ABC156 Beginner
ABC155 Poor
ABC154 Remaining Balls
ABC153 Serval vs Monster
ABC152 AC or WA
ABC151 Next Alphabet
ABC150 500 Yen Coins
140~149
ABC149 Strings
ABC148 Round One
ABC147 Blackjack
ABC146 Can't Wait for Holiday
ABC145 Circle
ABC144 9x9
ABC143 Curtain
ABC142 Odd of Oddness
ABC141 Weather Prediction
ABC140 Password
130~139
ABC139 Tenki
ABC138 Red or Not
ABC137 +-x
ABC136 Transfer
ABC135 Harmony
ABC134 Dodecagon
ABC133 T or T
ABC132 Fifty-Fifty
ABC131 Security
ABC130 Rounding
120~129
ABC129 Airplane
ABC128 Apple Pie
ABC127 Ferris Wheel
ABC126 Changing a Character
ABC125 Biscuit Generator
ABC124 Buttons
ABC123 Five Antennas
ABC122 Double Helix
ABC121 White Cells
ABC120 Favorite Sound
110~119
ABC119 TBD
ABC118 B +/- A
ABC117 Entrance Examination
ABC116 Right Triangle
ABC115 Christmas Eve Eve Eve
ABC114 753
ABC113 Discount Fare
ABC112 Programing Education
ABC111 AtCoder Beginner Contest 999
ABC110 Maximize the Formula
100~109
ABC109 ABC333
ABC108 Pair
ABC107 Train
ABC106 Garden
ABC105 AtCoder Crackers
ABC104 Rated for Me
ABC103 Task Scheduling Problem
ABC102 Multiple of 2 and N
ABC101 Eating Symbols Easy
ABC100 Happy Birthday!
090~099
ABC099 ABC
ABC098 Add Sub Mul
ABC097 Colorful Transceivers
ABC096 Day of Takahashi
ABC095 Something on It
ABC094 Cats and Dogs
ABC093 abc of ABC
ABC092 Traveling Budget
ABC091 Two Coins
ABC090 Diagonal String
080~089
ABC089 Grouping 2
ABC088 Infinite Coins
ABC087 Buying Sweets
ABC086 Product
ABC085 Already 2018
ABC084 New Year
ABC083 Libra
ABC082 Round Up the Mean
ABC081 Placing Marbles
ABC080 Parking
070~079
ABC079 Good Integer
ABC078 HEX
ABC077 Rotation
ABC076 Rating Goal
ABC075 One out of Three
ABC074 Bichrome Cells
ABC073 September 9
ABC072 Sandglass2
ABC071 meal Delivery
ABC070 Palindromic Number
060~069
ABC069 K-City
ABC068 ABCxxx
ABC067 sharing Cookies
ABC066 ringing
ABC065 Expired?
ABC064 RGB Cards
ABC063 Restricted
ABC062 Grouping
ABC061 Between Two Integers
ABC060 Shiritori
050~059
ABC059 Three-letter acronym
ABC058 ι⊥l
ABC057 Remaining Time
ABC056 HonestOrDishonest
ABC055 Restaurant
ABC054 One Card Poker
ABC053 ABC/ARC
ABC052 Two Rectangles
ABC051 Haiku
ABC050 Addition and Subtraction Easy
040~049
ABC049 UOIAUAI
ABC048 AtCoder *** Contest
ABC047 キャンディーと2人の子供
ABC046 AtCodeerくんとペンキ
ABC045 Trapezoids
ABC044 Tak and Hotels
ABC043 Children and Candies
ABC042 Iroha and Haiku
ABC041 添え字
ABC040 赤赤赤赤青
030~039
ABC039 高橋直体
ABC038 お茶
ABC037 饅頭
ABC036 お茶
ABC035 テレビ
ABC034 テスト
ABC033 暗証番号
ABC032 高橋くんと青木君の好きな数
ABC031 ゲーム
ABC030 勝率計算
020~029
ABC029 複数形
ABC028 テスト評価
ABC027 長方形
ABC026 掛け算の最大値
ABC025 25個の文字列
ABC024 動物園
ABC023 加算王
ABC022 Best Body
ABC021 足し算
ABC020 クイズ
010~019
ABC019 高橋くんと年齢
ABC018 豆まき
ABC017 プロコン
ABC016 12月6日
ABC015 高橋くんの研修
ABC014 けんしょう先生のお菓子配り
ABC013 A
ABC012 スワップ
ABC011 来月は何月?
ABC010 ハンドルネーム
001~009
ABC009 引っ越し作業
ABC008 アルバム
ABC007 植木算
ABC006 世界のFizzBuzz
ABC005 おいしいたこ焼きの作り方
ABC004 流行
ABC003 AtCoder社の給料
ABC002 正直者
ABC001 積雪深差
イ日記
こんにちは
暑い日が続いていますね,RedSpicaです.
先日柄にもなくインターンに参加してきました.その感想を書き連ねていきます.
ITで建設現場を楽にしようみたいなポリシーを持っていろいろなものを開発している静岡の会社に行きました.もしかしてこれは一意に定まってしまうでしょうか.また,日数は3日間でした.初めてインターンに参加したので普段はどんな感じなのかがわからずです(人事の方が「3日間だとあんまり来る人がいない」みたいなことを言っていたので長いのかもしれません).
1日目
事前にメールで参加者が1人ということを伝えられていたのですが,訪れてみると「やっぱもう1人いるよ」ということを伝えられました.
午前中は会社の説明を聞きました.また「実際にこんな感じに使うよー」みたいな感じで機械を触らせてもらいました.初めてドローンを触って「すげー」といったお気持ちに.
お昼休憩ではとても豪華なお弁当が出ました.オフィスがめちゃくちゃ綺麗だったりお茶を出してくれたりお弁当を出してくれたりこの会社は金持ちか?(お弁当は3日間とも出ました,すごい!)
またお昼休憩の間に簡単な自己紹介みたいなことをしたんですが,一緒に参加した方が情報系の専門学校に所属しているらしく「(よく聞く単語)やったことあります,(聞いたことある単語)とか(知らん単語)もやったことあって(なんかよくわからん単語)も少しだけできます」という強さを見せつけられてしまいました.ぼくはもちろんそういったことは一切やったことがないので「あーえっと競技プログラミングってのをちょっとだけやってて,C++とCとPythonがほんの少しだけ書けます」といったことしか言えず,会社の方もお察しムードといった感じでした.ぼくはこの日流した涙を決して忘れることはありません.
午後はブロックリーゲームというものを用いたアルゴリズムの研修をしました.
アルゴリズムの研修と言われていたので「あ,これAtCoderでやったやつだ!」ってなるかと思ったんですが,ボコられました.ぼくは今までなにをしてきたんでしょうか.
「学歴なんてどうでもよくて,行った学校でなにをしたかがマジで大事なんだな」とこの日以上に強く思った日はありません.
2日目
1日目の終わりに「常識の範囲内だったら私服でいいよ」みたいなことを言われたので,この日からは私服での参加です.そもそも1日目は何も考えずに下はスーツのズボンで上はワイシャツ(ネクタイなし)といった格好だったのであまり変わらないかもしれません.
この日の研修内容はHTMLとJavaScriptを用いたウェブページの作成,もっと詳しくいうとウェブ上で動く電卓と,自分の自己紹介ページを作るといったものでした.HTML自体は大学の授業で本当に少しだけやったことがあって「ウェブページを作ることができる何か」ということは知っていましたが,どうやって書くとかどんな感じで表示されるみたいなのは全く知りません.しかし,超親切丁寧に教えてもらえたので,ほとんど詰まることなく電卓は作ることができました.
問題は自己紹介ページの作成です.HTMLの書き方というか,かっこいい感じのページを作れなくて困ったのもそうなんですが,自分のことについて書くことが本当に無い.人に言えるような趣味とか特技とかが欲しいなあと思いました.競プロのことを書いたり,虹のコンキスタドールのことを書いて事なきを得ました.
2日目の総評
ぼくわかりました,JavaScriptはC++です
— 🌵卵生みらーじゅ🌖 (@asakaakasaka) 2020年7月29日
3日目
最終日です.朝早く(自分比)に起きて大学の課題と戦っていたので少し眠かった覚えがあります.
この日の内容はC#を使ってゲームを作るといったものでした.”ゲームを作る”といっても,グラフィックの部分はあらかじめ用意されていたので,ボタンを作ったりボタンを押したら動くようにしたりすることをC#を使って実装していく感じでした.ゲームの内容は,グリッド上を動くマシンを操作して,グリッド上に置かれたリンゴをすべて集めようというものです.
C#は一切書いたことがなかったので不安だったんですが,会社の方々がとにかくほめる.ことあるごとにいい感じの事を言ってもらえるし,「毎回コピペのやり方もわからない人がくる」みたいなことを言っていて「そんな人も来るのか」といったお気持ちになりました.普通にゲームが成立するところまで実装したら「予定より早く進んだのでオートモードを実装してみましょう」ということになりました.ここでようやくAtCoderで習得した実装力の出番です!実家のような安心感で実装をします.クリアしたのでさらに追加の課題を与えられます,実家実装をします.クリアしたのでさらに追加の課題を与えられますが,ここで時間切れ.
— 🌵卵生みらーじゅ⛅ (@asakaakasaka) 2020年7月30日
最後の課題はざっくりいうとこんな感じでした.dpとかをしてやるのかなーと思ったりもしましたが,偉そうにしていた割にはこれを実装する力はないです(かなしい).
最後に少しだけ実際の業務を見学させてもらい,これにて3日間のインターンが終了しました.インターンシップ修了証なる立派なものをいただき,お礼をして会社を去りました.
3日目の総評
— 🌵卵生みらーじゅ⛅ (@asakaakasaka) 2020年7月30日
まとめ
ぼくはこの1社しかインターンにいったことがないので他の会社はどんな感じなのかはわかりませんが,とても充実していたんじゃないかなーと思います.普段競プロをしているだけではわからない実務向けの基本的なこと,例えば「変数名をわかりやすくつける」だったり「リファクタリングをしてコードをよりよいものにする」といったことを身をもって知ることができました.
今まで1年ちょっと競プロをやってきて身に着けたことは無駄ではなかったような気がしています,chokudaiさんいつもありがとうございます.
競プロの実力がぼくと同じくらいの方は自己肯定感を上げるためにインターンに参加してもいい感じかもしれません.
ブログの最後にふざけた文章を書くことを生きがいにしているのにそれっぽい文章が思いつきません,困った.
RedSpica