パ研合宿2021運営記(後半)

はじめに

この記事は後半です。前半↓

oliverx3.hatenablog.com

前半はやったことを時系列順に並べただけでしたが、後半は今年のパ研合宿運営の諸々を書きます。引き継ぎ資料としての役割が強いです。

役職

今年は 2 つの役職を作りました。運営長と会計です。他にもいろんな役職の置き方があると思います。

運営長

運営方針(いつまでに何の作業を終わらせるか、誰にどの作業をやらせるか、など)を決める人です。
運営長に必要なのはレートではなくやる気です。レートだけで運営長を決めると破滅しかねません。何かあったときに責任を取るのは運営長になるので、老人がやった方がいいのかもしれません。
(運営全員に言えることではあるのですが、)特に運営長は Discord を常にチェックするようにしたほうがいいです。他の運営が何か投げたときすぐにリアクションを取ることが円滑な運営につながると思います。

会計

パ研合宿の予算を司る人です。
パ研合宿運営にあたっていろんなところでお金のやり取りが発生します。諸々の収支をちゃんと管理できる人がやるといいです。

今年は会計業務未経験の僕が会計でしたが、経験者がいたらその人に任せたほうがいいと思います。

パ研合宿運営の口座は今のところ存在しないので、会計の人の口座を使うことになると思います。

部門

運営にあたってさまざまな仕事が発生します。誰がどのタイプの仕事を担当するのかあらかじめ決めといたほうがスムーズに作業ができるので、部門を設置することをおすすめします。今年は

  • コンテスト部門
  • 講演会・レク・LT部門
  • 会場セッティング部門

の 3 つを設置しました。それぞれの部門に 2 人ずつ所属しました。

コンテスト

パ研合宿のメイン企画であるコンテストに関する作業を担当する部門です。

パ研には作問やコンテスト運営に慣れている人がいると思うので、その人に任せれば良いと思います。逆にそういう人が運営にいないと困るので、運営にさせましょう。

講演会・レク・LT

コンテスト以外の企画を全て担当する部門です。

講師の方のスケジュール調整や講義スライドの作成などの時間を取るため、合宿 1 ヶ月前までには誰を講師として招待するのか決めて連絡をすることをおすすめします。
今年は講義タイトル・概要を事前に提出してもらいました。
また、例年講師の方は参加費免除で、謝礼を渡しています。遠方から来る際には交通費支給などもあるといいかもしれません。
なお、講師の方がパ研合宿に全日参加するのか、途中のみ参加するのかという情報は、あらかじめ確認しておき会場セッティング部門の人と共有するようにしましょう。今年はここらへんの情報共有がうまくいっておらずいろいろ大変でした。

レクは、参加者同士の交流を深めるという目的以外に、余った時間を埋めるという目的もあります。作業に関して特にいうことはない...(今年は define が圧倒的開発力でオンラインジャッジを作ってくれました)。

LT 大会は、やる人数によって必要な時間が大きく変わるので、事前に希望者を募っておくことをおすすめします。今年は 4 人しかいなかった上に当日の進行方向を全く決めていなかったのでかなりグダった。

会場セッティング

僕が所属していた部門です。会場セッティングとはありますが、今年は実質的に当日の企画に関する作業以外の全ての作業を担当していました。会場予約の際に必要な情報が多すぎるのでまあしょうがない気はする...。

今年は大きく

  • 会場予約
  • 機材レンタル
  • 景品購入
  • 書類作成

の 4 つの作業がありました。

会場予約

4 ヶ月半前: 春休み開催決定

3 ヶ月前: 会場決定

2 ヶ月半前: 日数・日程確定

1 ヶ月半前: 参加者確定・予約

のスケジュールで動きました。

会場は過去のパ研合宿、夏季セミナー、他の科学オリンピックの春合宿の会場などを参考に決めるのがおすすめです。日数は運営で決めちゃって、日程はパ研内でアンケートを取るなりして決めるといいと思います。
予約する際には参加者の人数や途中参加者の有無などさまざまな情報が必要になりますが、これらが全て確定するまで待ってるといつまで経っても予約が取れません(直前で変更する人もいるのでそもそも確定しない)。ある程度把握したらとりあえず予約を取って、変更があったら都度連絡をしましょう。
外部募集をする場合このタイミングでやると思います。今年は、こちらが条件を提示して、その条件を満たす人が応募するという形にしました。他にも、運営内で誰を呼ぶか決めて個別に招待する形式もあると思います。どうやって外部募集するかは運営内で話し合ってください。

ちなみに会場予約作業、予約したあとが本番だったりする......(調整のためほぼ毎日会場と連絡をすることになると思います)。

機材レンタル

会場での PC の充電源を確保するため、電源タップなどの機材をレンタルする必要があります。今年は 3 口電源タップ 9 個、30 m コードリール 1 個をレンタルしました。2 週間前くらいに発注しました。

運営記(前半)にも書きましたが、かなりギリギリだったので、もうちょっと余裕を持ってレンタルしておくと安心です。
また、会場のコンセントの数・配置、貸し出してくれる電源タップ類の数も一緒に確認しておきましょう。

ちなみに去年、今年はイベント21という会社からレンタルしています。安いのでおすすめ。

景品購入

この部門がやる必要はないと思うんですが今年は僕が担当したのでここに書きます。

例年コンテスト類で上位になった人には景品を用意してます。今年は賞状とお菓子を用意しました。双子が運営をやってた頃は金メダルも用意してたらしい。

賞状は、賞状用紙を買って、中身は自分で作って、自宅か印刷業者とかで印刷するのが安く済んでいいと思いますが、今年は全て業者に任せました。かなり高くなりますがそっちの方が楽です。スピラン用 10 枚、パ研杯用 21 枚、レク用 3 枚の合計 34 枚を注文しました。10000 円くらいした。
どの業者も、枚数より種類数の方が金額に与える影響が大きい(1 種類追加するごとに 3000 円とか)ので、「金賞」とか「第4位」とかは自分達で書くようにしないと破産します。
ちなみに今年は スピード賞状.com というところにお願いしました。梱包がめちゃめちゃ丁寧で感動した。

お菓子は当日スーパーで買いました。1700 円分くらい。

書類作成

参加者向けの書類、保護者向けの書類、会場向けの書類など、いろんな書類を作成する必要があります。今年作ったもの

  • 保護者同意書
  • 参加費振り込みについて
  • 健康調査票
  • 宿泊名簿

あとはアレルギーに関する書類を大学セミナーハウスからもらったので参加者に流しました。

必要になったら都度作っていくとかでいいと思います。

提出してもらう書類については、提出期限を余裕を持って設定することをおすすめします。期限までに全員が提出することはないので。

 

どの部門の仕事かはっきりしない作業(パ研合宿鯖のアイコン作成、自己紹介カード作成、部屋割り決め、など)がちょこちょこありますが、運営長を中心にいい感じにやりましょう。

ハプニング集

運営中に起こった予期せぬ事故たちです。時系列順

参加費が 20000 円から 27000 円になった

事前の試算だと 1 人当たり 20000 円でしたが、予約が確定し料金を確認したら 1 人当たり 30000 円になってしまいました。原因は以下

  • 部屋を定員未満で利用した際の割増料金を考慮してなかった (+5000 円)
  • 消費税抜きで計算していた (+2000 円)
  • 事前試算の時本当は 22000 円だったが define に「20000 円くらいになりそう」と伝えてしまった (+2000 円)

結局部屋を定員で利用することで 27000 円にしました。それでも高い。本当にごめんなさい。

直前の参加取りやめ

1 人だけ保護者同意書提出も参加費振り込みもしない人がいて、Discord でも連絡がつかなかったので、合宿 3 日前の終業式の日に直接聞いたら参加取りやめすると言われました。直前の変更だったのでかなり大変でした。提出物を全く出さない人がいたら早い段階で参加意思があるのか聞いた方がいいです。

電源タップ注文ミス

本当は 4 口電源タップを 9 個注文したはずでしたが、色々あって注文をミスり 3 口タップを 9 個注文していました。しかもこれに気づいたのが電源タップが家に届いてからでした。合宿前日にパ研合宿鯖で「こちらの手違いで確保できるコンセント数がわりとギリギリなので、常に充電が必要な人はたこ足配線を持参してきてくれると嬉しいです!」と書きましたが、それはこれが原因でした。かなりまずかったんですが、実は大学セミナーハウスが電源タップ類を大量に貸してくれ got ことなき。

日曜日なので郵便局が空いていない

講師に渡す謝礼など、合宿中に必要になるお金を初日 (3/27) に引き出そうと思っていたのですが、3/27 は日曜日で郵便局が空いてないことに当日になって気づきました。そこらへんの ATM で下ろしたり自宅からお金を持ってきたりと色々やり方はあったと思うんですが、その時は何も思いつかず後々かなり面倒になりました。

講堂に来ない参加者

初日は UTPC の影響で人によって集合時間が違いました。到着したかチェックするため、まずは講堂(日中に企画を行う場所)に来てもらうよう言っていたのですが、うまく伝わっていなかったのか直接宿泊室に行ってしまい到着したかどうかわからない人が若干名いました。その人や同じ部屋の人などに来ているかどうか確認しました。

講堂から出て行かない参加者

18:00 に UTPC が終わり 18:10 から夕食の予定だったのですが、UTPC が終わったあとみんなが感想戦を始めてしまい全く講堂から出て行ってくれませんでした。講堂の電気を消したら出て行きはじめました。結局全員出たのは 18:15 くらいだった気がする。

食堂前に群がって邪魔

バラバラに食堂に入ると迷惑だと思い参加者を食堂前に集合させていたのですが、上に書いたようになかなか人が講堂から出て行かなかったのと、大きな荷物を食堂に持っていくのは迷惑なので直前に部屋に置いていくように伝えたせいで、全員が集まるまでかなり時間がかかってしまいました。20 分くらい食堂前に群がった状態だったみたいでかなり反省。うち以外に団体がいなかったのが不幸中の幸い。

当日の司会進行を決めていなかった

企画ごとに誰が司会をするのかはなんとなく決まっていましたが、企画の間を誰が進行させるのかを全く決めていなかったため、特に初日はかなりグダりました。講義の後しばらく無の時間が続くと失礼なので反省。確か初日はマイクに近かった kaage にやらせた気がする。

夜廊下で騒ぐ参加者

部屋の中で騒ぐのはまあいいんですが、深夜に廊下とかで話している参加者がいてかなり嫌でした。宿泊棟の構造的に小声だとしてもめちゃめちゃ響くので、他のお客さんにかなり迷惑だったと思う。反省してます。騒ぎそうな人には直接注意をしました。

暗証番号を忘れ講師謝礼を渡せない

講師謝礼のためのお金を引き出すために 3 日目の午前に北野の郵便局に行ったのですが、暗証番号を忘れてしまったせいでお金を引き出せませんでした。とりあえず家から持ってきたお金を使って講師 2 人分の謝礼を確保しました。残りの 2 人には後日振り込みで対応しました。

運営の 5/6 が絶起

3 日目が終わり運営も気が緩んでいたからでしょうか。4 日目 6 人中 5 人が絶起してしまいました。チェックアウトに関する連絡も遅れ、9:00 開始を予定していた講義も 9:45 からに変更になり、終了時刻も 12:00 から 13:00 に変更になりました。とても申し訳ないです。

直前の講堂追加予約

もともと 4 日目は 12:00 に終わる予定でしたが、開始が 9:45 になったため確実に間に合わなくなりました。朝フロントに行き講堂を 13:00 まで追加で取りました。後ろに他団体がいなくて本当によかった......。

長引く片付け

12:45 頃に解散できたのですが、その後の会場の片付けにかなり時間がかかり、結局終わったのは 13:30 とかでした。大学セミナーハウスの方、本当に本当にごめんなさい......。

赤字の予算

もともと予算がかなりギリギリだった上に、直前に講堂を 1 時間追加で予約したため、予算が赤字になってしまいました。参加費は多めに設定しよう!!!!!!!!

機材返却忘れ

借りた機材類は合宿終了翌日に業者に集荷してもらうはずだったんですが、集荷依頼はその前日(つまり合宿終了日)にやる必要があったらしく、完全に忘れていたため、自分で近くの営業所まで機材を持っていく必要がありました。返却方法は事前に確認しておこう。

その他

今後の運営に伝えたいこと集です。

「パソコン力を高めるの会」について

パ研合宿運営は外部に対して「パソコン力を高めるの会」と名乗っています。これは第一回パ研合宿のころから続くものです。これからもこの名前を使用してほしいのですが、ここではいくつか理由を述べておきます。

何をする団体かわかりやすい

「パ研」や「競プロ」といった単語は一般の人(宿泊施設の人やイベント会社の人)には馴染みがありません。「パソコン力を高めるの会」と名乗ることで、何をする団体なのかがわかりやすくなります。どう考えてもパソコンを使って活動する団体です。パソコンを使って何をするのかはわかりませんが、パソコンを使う団体だとわかってもらえれば、電源タップ類や WiFi などの環境を整備してくれます。

学校に迷惑をかけない

仮に「パ研」と名乗ってしまうと、それは筑駒のパ研のイベントになってしまい、学校の管轄になります。そうすると、学校側に許可を取る必要が出てきたり、会場の方に「部活のイベントですが付き添いの顧問はいません」と説明をする必要が出てきます。「パソコン力を高めるの会」と名乗ることで、有志の高校生主催のイベントだと言い張ることができます。ただ今年は運営が全員筑駒生だったりパ研公式アカウントで外部募集をかけたりで、筑駒が関わっていないと言い張るのはかなり無理がある状態ではありました......。
仮になんらかの事故が起きた際は、高校生が責任を取ることはできないわけで、多分学校にも迷惑はかかります。
また、今年はパ研合宿を開催することを顧問に全く知らせなかったが、例年知らせてるらしいので多分これからは知らせた方がいいと思う(何も言わずに開催して事故が起きたから助けを求めるのは最悪すぎるので......)。

同じ名前を名乗り続ける

運営記(前半)にも書きましたが、予約を取るときに「三年前も利用いただいたパソコン力を高めるの会様ですか?」と言われ、諸々の連絡を省略することができました。今後もパ研合宿の会場は似たようなところを使い続けると思うので、同じ名前を名乗り続けるといろんなメリットがあると思います。

運営に必要なのは民主主義ではなく独裁

運営鯖では、例えば以下のようなことが多発します。

A「外部募集の条件はこれでいいかな」

数日後...

B「なんでまだ募集してないの?」

A「誰もリアクションくれないからいいのかどうかわからないじゃん............」

運営全員が Discord を常にチェックし議論が活発に行われているなら、全ての事項を話し合いで決定してもいいかもしれませんが、残念ながらそんなことはありえません。
そこでおすすめなのが運営長の独裁です。運営長が OK と言ったものは全て OK にすることで円滑な運営を行うことができます。運営長の精神的負担が大きくなるけどパ研合宿成功のためなら犠牲になれますよね。
先ほども言いましたが、運営長は常に Discord を確認するようにしてください。

運営鯖を見る

独裁すればいいと書きましたが望ましいのは当然全員が運営鯖を見ることです。運営鯖を見ろ!!!!!!!!!!!!!!!!!!リアクションしろ!!!!!!!!!!!!!!

おわりに

これからの運営に伝えたいことは前半・後半を通して全部書き切りました。

パ研合宿運営は大変だと思いますが、思ったよりもなんとかなりがちです。終わった後の達成感は文化祭それにとても似ています。みんなも運営になろう。

また、今年は、僕の仕事の振り方が下手すぎたというのはありますが、事務作業系をこなす人材が少なくてかなり大変でした。そういうのが好きな人募集中。

次期パ研執行部が決まったあたりでパ研合宿2022の運営募集をかけると思います。みなさんのことを待っています。

受験が成功したら、来年のパ研合宿は Freedom writer として参加させていただきます。その時はよろしくお願いします。

パ研合宿2021運営記(前半)

はじめに

パ研合宿2021の運営をやっていました。
役職は会計でした。主に担当した仕事は、会計、スケジュール調整、会場選定・予約、機材手配、景品購入、その他雑多な事務作業です。運営長がやる仕事も少しだけやりました。

一時は開催できるかすら怪しかったのですが、無事に開催でき、大きなトラブルもなく終わってよかったです。参加者の「楽しかった!」みたいなツイートがたくさんあって本当に嬉しいです。

thistle さんの運営記が結構参考になったので、僕も運営記を残しておきます。来年以降の運営の参考になれば嬉しいです。
運営でやったことを時系列順に書いたものと、今年の運営のやり方を書いたものの 2 つに分けようと思います。この記事は前者です。

僕はコンテスト運営には全く関わってないので、それについての内容はかなり薄くなります。

2021年7月

パ研合宿2020の運営長の Rho がパ研合宿2021の運営募集をした。なんで運営をやろうと思ったのかもう完全に忘れてしまったが、Rho に DM を送り、運営鯖に入る。

この時期にやることは何もないので、しばらく運営鯖は動きません。

2021年10月

引き継ぎがあるので運営長と会計を決めた。ぺんぎんが運営長になった。kaage に会計をやれと言われたので僕が会計になった。まだ運営は動きません。

2021年11月

Cyanmond がパ研鯖で「幻のパ研合宿、今年はどうなるんですか?」と発言したのをきっかけに運営が動き出す。過去資料などを Rho から受け取った。今年は宿泊したいねってことになったので、パ研鯖で宿泊の有無と希望時期などのアンケートをとった。アンケートを見る限り、宿泊したい人が多く、春合宿にやりたい人が多かった。

冬休みは学校や塾で結構忙しかったので春合宿開催は賛成だったのだが、遅くなればなるほど感染状況がどうなるか予測できなくなるので、本当に宿泊形式でできるかは正直怪しかった。11 月の時点だと感染者は10人/日とかだったので、早めに開催したい気持ちもあった。ただ、今ならわかるが、11 月から動き出して冬休みにパ研合宿を開催するのは、不可能。

例年 KCLC はパ研合宿に招待しているので、KCLC 部長に春休み開催になることを伝えた。外部参加者の条件をどうするかを少しだけ話し合った。

2021年12月

期末が終わったことをきっかけに、運営が本格的に動き出す。運営長が役割分担をして、運営の 6 人がコンテスト準備部門、講演会・レク・LT部門、会場セッティング部門に分かれた。僕は会場セッティング部門に所属した。

パ研合宿を何日やるかもこの段階で議論した。高校に上がってからコロナの影響で宿泊行事が全部潰れていたので、せっかくなら 4 日くらいやりたいなと思っていた。ぷらにゃも 4 日やりたいらしい。中学上がってから何も宿泊行事できてないもんな。
ただ 4 日やるにはその分企画を増やす必要があって、まだ企画について何も話し合っていないのに決めるのは愚策なので、日数決めは保留となった。

コンテストの原案募集を開始したのもこの時期だった。

12/19 にクリスマス模試が終わりパ研合宿モチベが一気に上がったので、自分の部門の仕事を一気に進めた。まずは会場を決めようと思い、会場候補を調べた。が、どういうワードで検索したらそういう施設が出てくるのか全くわからず、結局パ研合宿2019会場のヌエックしか見つけられなかった。運営鯖に「候補を上げろ!」と投げたら、Rho が無限に教えてくれた。これが人生経験の差か......。

候補の中だと大学セミナーハウスが一番いいなと思っていたのとので、物理の冬合宿に行ってる kaage 先輩が大学セミナーハウスを推してきたので、ここを会場にすることに決定。参加者に会場を知らせたのは 2 月に入ってからでしたが、実は 12 月時点で会場が決まっていました!ごめんなさい。

具体的な日程も参加人数も何もわかっていないので、会場を決めただけで 12 月は終了。

2022年1月

そろそろ会場の予約を取りたいが、まだ日数すら決まっていないのである......!

筑駒の終業式が 3/24 で、JOI 春合宿が(この時点だと)3/19 - 3/24 だったので、3/25 - 3/31 の間のどこかでやろうという話になった。
日数の議論も再開された。コンテストの原案の集まりがかなり悪いらしく、4 日だと企画が埋まらずきついという話になったのだが、4 日やりたい運営が多かったのと、コンテスト以外の企画を多くすれば大丈夫だということになり、3 泊 4 日開催が決定した。パ研鯖でアンケートをとった結果 3/27 - 3/30 開催が決定した。kaage が「年度末忙しいので多分 3/30 参加できない」と騒いでいたが、結局参加していた。かわいいね。

日程は決まったが、参加者がまだ確定していないので当然予約も取れず 1 月は終了。

コンテスト担当の悲鳴が聞こえはじめたのもこの頃でした。

2022年2月1日-16日

1 月中旬から運営鯖が全く動かなかったのだが、ぷらにゃの「進捗どうですか」により各部門が一気に動き出す。ぷらにゃ、本当に偉い......。

参加者を確定させないことには何も始まらないので、まずはパ研内部で仮申し込みを開始した。内部の申し込みを始めた数日後に外部の申し込みを始めた。今年の運営は全員筑駒生だったので、パ研以外は全て外部として扱った。外部参加者の応募条件は例年と似たような感じにした。去年は(合宿直前に外部募集をしたのもあるが)外部参加者が 1 人だけだったので、今年もそんなに多くならないだろと思っていたが、想像以上に応募者が多かった。最終的に 20 人ちょっときた。おそらく界隈でパ研合宿が有名になっていたのと、今年の JOI 本選が 160 人参加できて、応募条件が去年より緩くなったからだと思う。募集人数は 10 - 20 人で、応募者が多かった場合は抽選すると伝えていたのですが、結局抽選はせず全員参加できることにしました。そもそも募集人数自体 5 秒で考えた適当なやつだったしな......。結果的にはちょうどいい規模だったと思う。define が参加者にまとめて連絡できる手段が欲しいと言っていたので急遽パ研合宿鯖を作る。実際に使い始めるのは後になると思っていたのだが、鯖を作った直後に define が外部参加者を招待しはじめたので、ほとんど整備されていない鯖を見られてしまった。

参加者確定と同時に、講師として誰を招待するかも話しはじめた。3 - 4 人招待しようとなり、色々あった結果、双子、tatyam さん、のいみさんを招待することになった。

会場予約するために決定するべきことがたくさんあって、僕が「いつまでにこれを決定させよう」みたいなのを言いまくったせいで、この頃から運営長みたいな立場になりはじめてしまう。ぺんぎん......。

2022年2月17日-28日

参加者・講師が確定したので、会場の予約を取る。こういうのの予約を取るのは確か初なのでちょっと緊張した。パ研合宿運営は外部と連絡を取るときは慣習的に「パソコン力を高めるの会」と名乗るようにしてるので、予約の際もパソコン力を高めるの会と名乗ったが、大学セミナーハウスの方から「3 年前にも利用していただいたパソコン力を高めるの会様ですか?」と言われびっくりした(パ研合宿2018の会場も大学セミナーハウスだった)。ただこのおかげで、参加者が全員学生であることなど、特殊な事情を説明する必要がなくなり助かった。これからも「パソコン力を高めるの会」と名乗ることをおすすめします。

予約が確定し、見積書が届いた。事前の試算だと 1 人当たり 20000 円で参加者にもそう伝えていたのだが、計算してみると 30000 円になった。あまりにも高すぎる。こうなった原因は色々ある。
感染症対策のために 4 人部屋を 2 人で使う方針だったのだが、定員未満で利用した際の割増料金がかなり高く、一泊当たり 1650 円高くなる。3 泊するので 1 人当たり 5000 円弱高くなってしまう。それに加え、試算の段階で消費税を考えていなかったのと、試算したとき 22000 円と出たが define に「20000 円くらいかな!笑」と伝えてしまったせいで、こんなことになってしまった。参加者のみなさん本当にごめんなさい。
さすがに 30000 円は高すぎるので、どうにかして減らすことにした。運営内で色々考えた結果、部屋を 4 人で使うことにした。部屋を使う時間はほとんどないのと、2 人利用にしても感染症対策してる感が出るだけで大して変わらないという理由。今から考えると 4 人利用にして本当に良かったと思う。2 人利用だとお通夜部屋が大量発生してつらそう。
ちなみに感染症対策のために参加者全員に抗原検査をやらせる案もあったが、参加費が 3000 円くらい増えてやばなので無しになった。その代わりに健康調査票(体温記入など)をやらせることに。

セミナー室(日中イベントを行う会場(講堂))の予約も同時にした。食事のとき以外全て予約を取った(合計 30 時間くらい)のだが、そもそもコンテストが何個開けるかも確定しておらず、企画が埋まるかどうかかなり微妙だった。

ぷらにゃが自己紹介カードを作ってくれたので、参加者が発言できないようにしていた自己紹介チャンネルを解禁した。ぷらにゃえらい......(再掲)。去年は自分の顔写真を載せない人が多発していたが、今年はみんな顔写真を載せてくれた。見てて楽しい。

パ研合宿まであと 1 ヶ月ちょっとになった時、急に開催できるか怖くなってきた。運営の 4/6 が春合宿で、春合宿前は精進が忙しくて作業ができないと考えると、実質あと 2, 3 週間で運営業務をほぼ終わらせる必要があるのだ。いざとなったら僕が過労死してできる作業は全てやる覚悟はあったが、コンテスト運営など僕じゃできない作業もある。適当に運営やっていたらいつか取り返しのつかないことになると思うとかなり怖くなってきた。これを思った時は深夜だったのだが、深夜にいくら考えても無駄なので、寝た。起きたら「まあなんとかなるだろ!w」の気持ちになってたので解決。大学セミナーハウスと連絡取ったりパ研合宿までどうやって運営するか考えたりと、経験したことのないタイプのストレスが毎日あったので、精神的にきてたのが原因だと思う。
そういえば、怖くなって運営鯖で騒いでいたときに、ぷらにゃがすぐにやるべきことをまとめた todo リストを作ってくれた。こういうときすぐに動けるの本当にえらい......。

翌日に保護者同意書、アレルギー関連の書類をパ研合宿鯖に投げた。

レクに関する諸々も動き出していた。define が大量にレク案を投げていたのだが、色々あって結局チームで CodinGame 的なことをすることになった。

パ研合宿の初日は 3/27 だったのだが、どうやら UTPC も 3/27 の 13:00 からあるらしい。開会式は 15:00 を予定していたので、今のままだとパ研合宿参加者は UTPC には参加できない。ぷらにゃが UTPC 参加できるようにするために 13:00 から講堂を開ける案を出してきた。外部のイベントをパ研合宿に取り入れるのはちょっと抵抗があったし、もしやるとしても全員を UTPC に参加させるわけにはいかないため参加者の集合時間がバラバラになってかなり面倒だし、チェックインとかの作業もめんどくさそうだったので、正直かなり消極的だった。ただ、パ研合宿鯖でアンケートを取ったとき思ったより UTPC 参加希望者が多かったのと、Twitter で UTPC writer の大人達から「パ研合宿ずらせ!」と脅されたので、UTPC を企画に組み込むことにした。

ここまできて、早めに終わらせたい作業が各日の企画決め、部屋割り決め、しおり作成しか残っていないことが判明。かなり心が楽になった。部屋割り決めは正直そんなに急いでなかったけど僕が早めに決めたかった(し、他の運営もそう思ってるだろ!)。

パ研合宿中にやる企画はほぼ決定してたし、それぞれの時間も大体決まっていたので、各日に何をやるかはそんなに迷わず決められた。

部屋割り決めは、運営全員本気で考えた。3 泊 4 日を共にするメンバーである。適当に決めることはできない。運営鯖が一番活発に動いていたのは確実に部屋決めの時である。
レクはチーム戦だったが、部屋対抗でやったら交流も深められて良さそうだったので、最初はいい感じにレートがバラける部屋割りを作成した。ただレクのためだけにレートしか考慮してない部屋にするのはもったいないという話になり、運営内で話し合った結果、ぷらにゃが天才的な部屋割り案を持ってきたため、それで決定になった。他にも色々あったがここには書かない。知りたい人は来年運営になろう!

部屋割り作業中に 2 月は終了、いよいよ 3 月に突入......。

2020年3月1日-7日

しおりは 2 週間前までには仮完成させたいのと、僕が 3/9 - 3/12 に校外学習があってその間は作業したくないので、早めにしおり作成を始めた。コンテストなどの企画紹介といった僕が書けない部分や、講堂での座席表、当日の細かいスケジュールなどまだ決定していないところ以外は、2 日かけて全て書いた。ちなみに期末期間中だった。そういえば、しおりの一番最初に運営挨拶があったと思うが、あれは僕が書いた。最初は運営全員挨拶を書くのかと思っていたが、合宿 1 週間前になっても僕以外誰も書かないので、書いた人の名前を僕の名前から「運営一同」に変えた。

講堂での充電源を確保しなきゃいけないことに気づき、延長コード類の手配も始めた。電源タップ、コードリールを、去年と同じところから同じくらいだけ借りた。講堂のコンセント数も調べたのだが、予想以上に多くて安心した(この時確認しわすれたのだが、会場側が延長コード類を貸してくれる可能性もあるので、来年以降の運営は聞いておこう。今年は何も聞かないまま当日を迎えて「いやそっちに用意あるんかーい!」となった)。

define がレク用にオンラインジャッジを作ってくれることになった。試作段階の様子を見せてもらったのだが、春合宿前にこのクオリティーのもの作ってくれるの天才すぎるし本当に助かった。

Rho から賞状とか景品とかの作業進捗を聞かれ、何もやっていないことに気づく。やるべき作業のリストアップはちゃんとやっておこう!

当日の細かいスケジュールを仮で作ったが、思ったよりも時間が足りないことが判明。kaage が Freedom 5 時間確保しろとうるさかった。なんで非競技が一番長いコンテストなんだよ!

あと kaage からいきなり Freedom の経費として 1380 円確保してほしいと言われた。何に使うんだよと思っていたが、はいら......。

2022年3月8日-15日

大学セミナーハウスに宿泊名簿を提出した。参加者全員の住所とかが必要かと思って回収していたが、別に必要なかった......。

さっきも書いたが 3/9 - 3/12 まで校外学習だったので、何も作業をしなかった。運営鯖も基本見なかったので、連絡が溜まってたら申し訳ないな〜と思っていたが、どうやら校外学習中運営鯖動いていなかったらしい。それでいいのか?
校外学習から帰ってきて一気にパ研合宿の事務作業含む現実に引き戻されたせいで一瞬つらくなった。全ての作業を放棄したくなったが、やばいので、耐える......。

講堂の座席表を決めたり、講師の方に講義タイトルを提出してもらったりした。

賞状の作業もそろそろやらないとまずそうだったので始めた。例年は賞状用紙を購入し、症状の中身を作って自宅やキンコーズとかで印刷してるらしいのだが、他にも大量の作業があったのと疲れていて全て業者にお願いしたかったので、今年は賞状作成を全て業者に託した。ちなみに自分で作るのと比べてめちゃめちゃ高かった。賞状のクオリティーは(当然だけど)明らかに高くて感動。賞状の種類・枚数だが、今年は SpeedRun 10 枚、パ研杯 21 枚、レク 3 枚にした。レクはチーム内の交流が主目的だったので(だからレート差が小さくなるようなチームにした)、それに賞状をつけるのはあまり良くない気もする。DeathGame とか Freedom につけるのもありだったかも。

賞状を注文した時点で予算が 3000 円ちょっとしか残っていなかったため、景品はお菓子類のみにした。メダルは用意しなかったのだが、当日 E8 さんがメダルを異常に推してきた。

2022年3月16日-23日

3/20 から春で、その間は競技に集中してもらえるよう 3/19 までにほぼ全ての作業を終わらせたかったため、残っている作業を一気に片付けた。

しおりに書くべき内容が全て揃ったので、担当の人に書かせ、しおりを発行した。しおりの中にちょくちょく小ネタを入れていたのだが、見つけてくれた人が多く(それ関連のツイートがたくさんあった)、みんなちゃんと読んでくれてるんだな〜と感心。

春合宿期間中は基本的に運営鯖を自分から動かさないようにしていた。自分からした発言は「食事メニュー決定🎉[パ研合宿中の食堂のメニュー表.pdf]」だけだった。

確かこの期間中に運営の当日の動きとかをまとめた「パ研合宿2021運営マニュアル」を作成した気がする。伝えていたつもりが実は伝わっていなかったというのは本当によくあることだし、こういうまとまった情報共有はなんらかの手段でした方がいいと思う。あと、マニュアルを作ると自分が何をわかっていないのかがはっきりして、適切な措置(運営内で確認する、会場に問い合わせる、など)が取れるのでおすすめ。

2022年3月24日-26日

直前になると大きな作業はほぼ残っていない(というか残っていたらまずい)ので、会場側との調整や注文、レンタルしたものの受け取りといった細々とした作業を毎日やることになる。

まず、春が終わったので運営マニュアルを鯖に投げた。

保護者同意書の提出や参加費振り込みを一切しない人が 1 人いて、Discord で DM しても返事が来ず、このままだと参加できるかかなり怪しいので、終業式の日に直接聞きに行ったら「やっぱり参加をやめる」と言われたのでかなり忙しくなった。その人にはキャンセル料を請求して、運営内では部屋割りを再調整するかどうか(1 人減ったので定員未満の利用になって、割増料金を取られると思った、結局とられなかったけど)など色々話し合った(春合宿鯖でパ研合宿の追加募集があったと思うが、それはこれの影響)。直前に大きな変更が来てメンタルがぐおーーーーーーになりかけたが、こういう時は寝れば良い。大学セミナーハウスにキャンセルの連絡とどういう対応が必要か聞き、寝た。結局キャンセル料はそんなに高くなく、割増料金もなかったので、部屋割りを若干調整して解決した。

直前の 3 日で、注文した賞状とレンタルした電源タップ・コードリールが一気に届いた。賞状はとても丁寧に梱包されていて、見た目もめちゃめちゃ綺麗で本当に感動した。電源タップ・コードリール類も無事に届いたのだが、ここでハプニングが発生した。もともと 4 口タップを 9 個注文していたつもりが、誤って 3 口タップを 9 個注文していた。6 人で 1 つのタップを使う計算で注文していたので、3 口タップだとかなりまずい。今から返品もできない。さらにまずいのが、事前にパ研合宿鯖で「常に充電が必要な人いますか🔋」とアンケートを取ったとき、なんと 22 人もいたのだ。3 口タップ 9 個では確実に足りないのである。運営鯖とパ研合宿鯖でタコ足配線を持ってくるよう伝え、なんとかコンセント数が足りることを祈っていた。

開会式スライドもこの時期に作った。最後の諸注意、ビ太郎の本気を見せたら思ったよりウケてて嬉しい。

3/13 を締め切りにしていた自己紹介カードも、パ研合宿前日の 3/26 にようやく全員提出がされた。

講師の Square1001 さんは 3/29 のみの参加だったが、講義が夜にあると帰るのが遅くなるからスケジュールを変えようという話になった。ぺんぎんに無理を言ってコンテスト時間を変えてもらいスケジュールを再調整した。助かった。

合宿一週間前から作業で慢性的な寝不足だったのと、無事に開催できるかの不安と緊張で、前日になりいきなり体調を崩した。あと、僕は口内炎ができやすいのだが、この時もかなり大きめの口内炎があってめちゃめちゃつらかった。頭が痛く倦怠感がひどかったので、21:00 にはベッドに入った。昼寝をしていたせいで全然眠れず結局寝られたのは 1:00 とかだった。

2022年3月27日

6:30 におきた。初日に絶起したら全てが破滅するので良かった。

頭痛いのは変わっていなかったのでロキソニンを決めた。だいぶ楽になった。

パ研合宿鯖に合宿前の最後の連絡をしてから諸々の準備を始めた。前日体調を崩したせいで荷造りができていなかったため、まずは荷造りをした。その後予備の健康調査票を複数枚印刷したり大学セミナーハウスとの最終調整をしたりといった細々とした作業をして、家を出た。

最寄り駅までは父親が送ってくれ、駅でぷらにゃと合流して北野まで行った。電車内でかめ君やあんみち君とあった。他の運営や参加者と会うと緊張もなくなり、頭痛や倦怠感も無くなった。

北野についたらおすみょんや他の参加者もちらほらいた。みんな集合が早すぎないか?家から持ってきていた電源タップ・コードリールの入った箱(めちゃめちゃ重い)をおすみょんにたくし、駅構内のスーパーでぷらにゃと景品のお菓子を購入した。1700 円くらい買った。

合宿中に使う経費などをここで引き出しておこうと思ったのだが、日曜日なので郵便局が空いてなかったので断念した(下ろすだけなら ATM でもいいのだが、両替とかもお願いしたかったので(今から思えば両替くらいどこでもできるのでさっさと引き出せばよかった))。

ぺんぎんが家に忘れ物をしたようなので、ぺんぎん以外の運営 + 複数の参加者で大学セミナーハウスまで向かった。大きな荷物を持った団体が同時にバスに乗るのかなり迷惑な気がするので申し訳なかった......。

大学セミナーハウスについたら、どこで人を集合させるかを検討した。いい感じの場所がなかったのでフロントに聞きに行ったら、本館のラウンジを使わせてもらえて助かった。普段メールでやり取りしていた人が目の前にいてちょっと感動した。

参加者をラウンジに移動させたあと、フロントで諸々の手続きをした。13:00 から UTPC なのだが、前の利用団体が長引いたらしく、講堂に入れるのはかなりギリギリになるらしかった(結局 12:50 くらいに入れたので問題はなかった)。また、このとき、延長コード、タコ足配線類を無料で大量に貸してくれることを伝えられた。コンセントが足りなくなる!やばい!と騒いでいたのはなんだったのか......。

講堂の鍵を受け取ったら、まずは自分だけ入り写真を撮りまくった。最終日に片付けするときの参考にするためだ(結局机の配置はほとんど変えなかったため、必要はなかった)。その後参加者を入れ、UTPC のチームごとに座ってもらった。

UTPC 中はプロジェクターの設定や電源タップ類の配置を済ませたら暇なので、塾の課題をやっていた。合宿前二週間ほどはとてもじゃないが塾の課題などやる余裕がなかった。結局あまり集中できず 3 問解いただけで終わった。

参加者には来場チェックのためまずは会場に来いと伝えていたのだが、直接宿泊室に向かってしまう人が数名いて、その人たちが来てるかどうか確認するのがわりと面倒だった。17:00 ごろには全員来場したのが確認できてかなり安心した。

UTPC が 18:00 に終わり、夕食は 18:10 からの予定だったので、終わったらすぐに食堂に向かうよう伝えていたが、なかなか人が講堂から出ていかず大変だった。マイクで呼びかけてもあまり出ていかないが、講堂の電気を消し始めるとみんな出ていった。こういうのなんていうんだっけ。

アレルギーのある人には専用の食券を渡す必要があるので、参加者全員食堂の前に集合させてそこで渡そうと思っていたのだが、大きな荷物を部屋に置いていってもらったり、参加者がなかなか集まらなかったりと、かなり手間取ってしまった。結局夕食を食べ始めたのは 18:40 とかだった。かなり反省してる。

食堂では元々部屋ごとに固まって座ってもらう予定だったのだが、周知できておらず、バラバラの席になってしまった。運営内で話し合った結果、部屋ごとに固める案は無くした。また、食事の際に部屋責任者に点呼してもらう予定だったのだが、これも一緒に無くした。

食事の後は講堂で開会式、E8 さんの講義を行った。合宿中の司会進行を誰にするか全く決めていなかったため少し手間取った。ただ大半はスムーズに進められたので良かった。

21:00 に初日の企画が全て終わり、参加者を講堂から追い出し、講堂の鍵を閉めた。講堂の鍵管理はおすみょんに任せた。運営の仕事はこれで終わり。部屋に戻ったら Writer が悲鳴を上げながら作業しててかわいそうだったが、それにしてはぷらにゃが遊んでてキレかけた。結局 3:00 くらいに寝た気がする。

2022年3月28日

起きたら隣にはいらがいてかわいかった。

2 日目ということもありかなりスムーズに運営できた気がする。講堂開けるタイミングでちょっと手間取ったくらい。

スピランが始まる前に延長コード類の配置を一気にやった。大変だったので、こういうのは事前に終わらせといたほうがいい。スピランが始まった直後に 403 Forbidden になってちょっとトラブった。同一 IP 制限だったらしい。

Freedom は Freedom は楽しかった。ただ好みが分かれそうな企画だな、解けないと本当につまらなそう。

講師には謝礼として 5000 円を渡す予定だったのだが、初日に下ろせなかったので、運営内で 5000 円札を持っている人に借りようとおもったが、なんと誰も持っていないのである。10000 円札を持っている人は複数人いたけど。今から考えるとフロントで両替をお願いすればよかったのだが、頭が固かったので翌日のレクの時間に北野まで行って引き出すことにした。

企画が無事に終わり、講堂を閉め、部屋に戻った。define がレクの準備でかなり大変そうだった。あとパ研杯がやばいとぺんぎんが悲鳴を上げていた。define と forested と深夜にカップラーメンを食べた。美味かった。この日も 3:00 くらいに寝た。

2022年3月29日

起きたが隣にはいらはいなかった。

8:45 に起きたので朝食はかなりギリギリだった。レクを 8:45 に始める予定だったが、レク担当の define も 8:45 とかに起きたので、結局 9:05 くらいに始めた。

僕は講師の謝礼を引き出すため北野へ向かった。郵便局の ATM の前に立ったが、ここでハプニングが発生した。暗証番号を忘れたのである。以前も暗証番号を忘れたことがあったが、その時は数回ガチャをしたら正しいのを引き当てられた。今回も行けるとおもったが、ガチャ失敗。引き出せなかった。しょうがないので手元にあった 10000 円を 5000 円 × 2 に変えた。

レクはかなり好評だったらしい。define ほんとえらいよ。

その後、講義、パ研杯、DeathGame とスムーズに進めた。パ研杯はちゃんと成功してて感動。DeathGame は、準備さん......。

3 日目は時間が余るとおもっていたのだが、DeathGame の諸々があって結局終わったのは 22:00 ピッタリだった。どうしてこうなった。

部屋に戻ったあとは、W & T 陣もようやく仕事が終わったので、いろいろ喋ってた。楽しかった。4:00 くらいに寝た気がする。

2022年3月30日

起きたが隣にはいらはいなかった。

10:00 までにチェックアウト作業を済ませなきゃいけないので 9:00 までに部屋の片付けを完全に済ませて講堂に向かってもらう予定だったが、運営陣が起きたのが 8:50 とかで、それから「チェックアウトあるので片付けてください!!!」と連絡したので、本当に忙しくさせたと思う。本当に申し訳ない。9:00 から tatyam さんの講義がある予定だったが、9:45 開始にしてもらった。tatyam さん本当にごめん......。

もともと最終日はかなりスケジュールがきつきつだったのに加え開始が 45 分遅れたので、確実に時間が足りなくなってしまった。フロントに頼み講堂の予約を 1 時間追加させてもらった。後ろに他団体がいなくて本当によかった。

なかなか起きてこない部屋があり全部屋のカードキーを集めるのは大変だったが、14 部屋中 13 部屋は 10:00 までにチェックアウト作業を終わらせられた。残りの一部屋も 10:40 とかにチェックアウトできた。

講義の後は LT 大会だったのだが、事前に何も決めていなかったのと、PC をプロジェクターに接続するのに手間取ったため、かなりグダってしまった。反省。結局 4 人中 2 人はスライドなし LT だった。というか LT 4 人って少なくない?もうちょいいてもいいんだよ。今年は時間的に 4 人が限界だった気はするけど。

LT 終わったら表彰式をやった。kaage が講義と LT の時間に賞状の名入れ作業を終わらせてくれてて助かった。景品のお菓子類だが、どれを誰に配るか考えるのが面倒だったので、「自分の順位をわきまえたお菓子を取っていってください」とだけ言って参加者に任せた。怖かったらごめんなさい。

その後集合写真を撮った。フロントに行き大学セミナーハウスの人に写真撮影をお願いしたのだが、その時運営がスムーズに行えたことを褒めてもらい結構嬉しかった。

写真を撮ったら、参加者は解散。運営は講堂の片付けをした。延長コード類を全て回収して束ねて箱に入れ、机・椅子類をもとの配置に戻した。片付け作業はかなり時間がかかり、13:00 に終わらせる予定だったが結局 13:40 までかかった気がする。後ろに他団体がいなかったので許してもらえたがかなり迷惑なので、片付けの時間は多めに見積もったほうが良い。

解散したあと、Square1001 さん以外の講師に謝礼を渡し忘れていたことに気づいた。その場にいた E8 さんには渡せた。のいみさんと tatyam さんはあとで振り込むことにした。

終わったあとは複数の運営、参加者でご飯を食べたりした。大きな荷物を持ったままで大変だったが楽しかった。結局帰宅したのは 21:00 とかだった気がする。

2022年3月31日-

借りていた電源タップ、コードリール類を返却した。あとは諸々の会計作業を終わらせればひとまず終了。コロナ感染者が出たらまた忙しくなる。

おわりに

時系列順にやったことを列挙したらまとまりのない文章になってしまった気がします。

この記事は前半とありますが、後半をいつ書くかまだ決めてません。前半書くだけでおもったより疲れました。ただ引き継ぎ資料は必要だと思うので絶対に書きます。

パ研合宿前〜終了後に「おりばーえらい!」とか「おりばーおつかれさま!」みたいなツイートをちょこちょこ見かけて、本当に嬉しいんですが、ガキなので全部に反応するの恥ずかしくてスルーしちゃってます。本当は全部確認してるし全部ふぁぼしたいです。みんなありがとうな。

準備段階は僕がメインに動いてきた気はするけど、合宿中は運営全員が働いていて、本当に頼もしかったです。

パ研合宿運営には思わぬトラブルがつきものだと思いますが、気持ちを楽にして「まあなんとかなるやろなあ」のメンタルで動くと、自然と全部なんとかなると思います。メンタルが押しつぶされそうになったらとりあえず寝ましょう。

来年パ研合宿がどうなるかはまだわかりませんが、何か困ったことがあったら、僕でよければ相談に乗れます。多分引き継ぎの都合で来年も運営鯖にいると思います。パ研合宿運営はかなり大変ですが、とてもいい経験になります。みんな運営になろう!

これからもパ研合宿が続いていくことを願って、前半を終えます。

ARC116 C - Multiple Sequences

これが水diffって嘘だよな......

エスパーで通してしまった。解説見てなるほどな〜になった

https://atcoder.jp/contests/arc116/tasks/arc116_c

問題概要

以下の条件を満たす長さ  N の整数列  A の個数を求めよ。

  •  1 \leq A_i \leq M
  •  A_{i+1} A_i の倍数

解説

問題を見ると、 \mathrm{dp}[i][j] ...  i 番目の要素が  j である  A の個数 という自明な DP が思い浮かぶが、これは解けない(コンテスト中はずっとこれの高速化を考えてしまった)。

末尾の要素を固定するといい感じに数えられそうな予感がする。末尾の要素を固定し、それぞれに対して  A の個数を高速に求めることを考える。

 A の要素数 N+1 だと考え、 A_0 = 1 としても問題ない。最初の要素も固定されるので嬉しい。

 A_N = k のときを考える。 A_0 \rightarrow A_1, A_1 \rightarrow A_2, \ldots , A_{N-1} \rightarrow A_N それぞれに  k の素因数を配る感じになる。

このとき、素因数ごとに独立に考えて良い。つまり、 k = p^{a} q^{b} r^{c} \ldots素因数分解すると、 p, q, r, \ldots は独立に考えてよい。

 a 個の  p N 個の箱に配ればよくて、これは  \dbinom{a+N-1}{N} 通りである。それぞれの素因数に対するこの値の総積が、末尾が  k のときの答え。あとは  1 から  M まで足せばよい。

素因数の個数の和は調和級数を考えると  O(M \log M) で抑えられるので、間に合う。

反省

DP から抜け出すのが遅かった。末尾固定は考えられたが、 A_0 = 1 を追加し最初の項も固定するとより考えやすくなったので、吸収したい。組み合わせの基本的なところ(写像 12 相など)がパッとできないので訓練したい......。

提出コード

https://atcoder.jp/contests/arc116/submissions/25294568

ARC125 B - Squares

なんでコンテスト中解けなかったんだ..............

https://atcoder.jp/contests/arc125/tasks/arc125_b

問題概要

整数  N が与えられる。以下の条件を満たす整数の組  (x, y) の個数を求めよ。

  •  1 \leq x, y \leq N
  •  x^2 - y は平方数

 1 \leq N \leq 10^{12}

解法 

制約を見るに  O(\sqrt{N}) だろうと見当がつく。

こういう問題はとりあえず条件から式を立て、式変形。

 x^2 - y = k^2, k \in \mathbb{Z}_{\geq 0}

とおくと、

 x^2 - y = k^2

 \Leftrightarrow y = x^2 - k^2

 \Leftrightarrow y = (x-k)(x+k)

 1 \leq y \leq N より

 1 \leq (x-k)(x+k) \leq N

ここまでは問題を見た瞬間たどり着けた。コンテスト中はこの式を睨んで 90 分以上椅子を温めることに...........(どうして......)

 k \geq 0 より、 x-k \leq x+k

よって  1 \leq x-k \leq \sqrt{N}

 x-k, x+k が決まれば  (x, y) は一意に定まるので、 x-k を全探索してありえる  x+k の個数を数えれば解けた。

ここで、 x-k x+k の偶奇が一致していれば  (x, y) は存在する。

 x-k \leq x+k であることに注意して数え上げる。

反省

コンテスト中は色々迷走してしまい  \Omega (N) 解法しか見えなかった。制約から明らかに  O(\sqrt{N}) なんだから、それを意識しながら式を睨んだら見えたはず。範囲が絞れたのであとは全探索、は基本中の基本なのだから、そこができなかったのは本当に悔しい。

提出コード

https://atcoder.jp/contests/arc125/submissions/25292237

ABC140 D - Face Produces Unhappiness

めっちゃ詰まった

本当に緑diffか?と思いながら解いてたけど、確かに緑diffレベルかもしれない

https://atcoder.jp/contests/abc140/tasks/abc140_d

問題概要

 N 人の人が並んでおり、それぞれの人は左か右を向いている。どの人も目の前の人が自分と同じ向きを向いていたら幸福である。以下の操作を  K 回まで行えるとき、幸福である人は最大で何人にできるか。

操作: ある区間を選び、その区間 180 度回転させる。

解説

最大値を求めたいので、典型である二分探索や DP に想いを馳せるが、どれもうまく使えない。

操作について考察してみる。操作した区間から遠く離れた場所では当然幸福である人は変わらない。また、操作した区間の中でも、端点を除いて幸福である人は変わらない。よって、操作をすることで幸福であるかどうかが変わる人は、区間の端点付近の人たち。少し考えると、 1 回の操作では高々  2 人しか幸福である人は増えない。

また、LLLRRRRRLLLL や RRRLLLLLRRR のように、挟まれた区間(?)を選ぶと、幸福である人を  2 人増やせる。

 N 人のうち幸福である人は最大でも  N-1 人である。

よって、最初に幸福であった人の数を  X をとして、 \min(X+2K, N-1) が答えである。

反省

 180 度回転を考えるとか不可能じゃん!!!になってしまい、本質部分まで辿り着けなかったので反省。

上界がこれで、その上界は必ず達成できるので、解けました、みたいな流れ本当によくみる。疑えるようにしたい。

実際に解いたときはもう少し遠回りの解法を通ってしまった。この考え方の方が実装も簡単なので身につけたい。

提出コード

https://atcoder.jp/contests/abc140/submissions/25291555

ABC202 E - Count Descendants

オイラーツアー賢すぎ!色々な解法があるっぽい

atcoder.jp

問題概要

 N 頂点からなる根付き木が与えられる。クエリ  (u, d) をたくさん処理せよ。

クエリ  (u, d) :  u を根とする部分木で頂点  1 からの深さが  d のものは何個あるか。

 2 \leq N \leq 2 \times 10^5

 1 \leq Q \leq 2 \times 10^5

 

解説

部分木を扱う典型テクとして、オイラーツアーというものがある。木をいい感じの列に変換するテク。

まず根から DFS をする。カウンター  k を持っておく。

頂点  i を訪れたら  \mathrm{in}[i] k を記録し、 k をインクリメント。(行きがけ順に番号をつける)

頂点  i の部分木を全て探索したら、 \mathrm{out}[i] k を記録する。(帰りがけ順に番号をつける)

このとき、木をオイラーツアーを用いて変換した列  \mathrm{in} は嬉しい性質を持っている。頂点  i の部分木の頂点集合は列の  [\mathrm{in}[i], \mathrm{out}[i]) で表される。

木に対しては使えなかったさまざまなアルゴリズムやデータ構造が、木を列に変換したことで使えるようになって、嬉しい。

この問題においてもオイラーツアーが使える。

二次元配列  \mathrm{ls} において、 \mathrm{ls}[dep] に深さが  dep である頂点の  \mathrm{in} の値を入れておく。それぞれのクエリごとに、 \mathrm{ls}[d] 内の  \mathrm{in}[u] \leq x \lt \mathrm{out}[u] なる  x の個数を数えればよくて、これは二分探索で高速にできる。よって  O(N \log N + Q \log N) で解けた。

反省点

オイラーツアー、名前とやりたいことは知っていたが、実際の問題でどうやって使うのかやどうやって実装するかをあまり詳しく知らなかった。オイラーツアーをした後の問題でにぶたんを使うことは超典型なので、すぐにできるようにしたい。

提出コード

atcoder.jp

 

クエリが先に与えられてるので、他にもいろいろな解法があるっぽい。解説放送にあったマージテクが賢そうだった。

ABC210 D - National Railway

これコンテスト中に解けなかったのよくない

atcoder.jp

問題概要

 H \times W のグリッドが与えられる。異なる  2 (i, j), (i', j') を選ぶ。

 A_{ij} + A_{i'j'} + C(|i - i'| + |j - j'|) の最小値を求めよ。

2 \leq  H, W \leq 10^3

 1 \leq C, A_{ij} \leq 10^9

 

解説

2 つ同時に動くと考えづらいので、1 点を固定する。

 i \gt i', j \gt j' を仮定すると絶対値がはずせる。 (i, j) (i', j') を分離できるので嬉しい。

 A_{ij} + A_{i'j'} + C(|i - i'| + |j - j'|) = A_{ij} + C(i+j) + A_{i'j'} - C(i'+j')

全ての  (i, j) について  A_{i'j'} - C(i'+j') の最小値を高速に求められれば良い。

 \mathrm{dp}_{ij} :=  (i, j) についての  A_{i', j'} - C(i'+j') の最小値

と定義すると、 \mathrm{dp}_{ij} \mathrm{dp}_{i-1j} \mathrm{dp}_{ij-1} の値を用いて  O(1) で求められる。(累積 min)

よって  O(HW) で解けた。 i \gt i', j \gt j' を仮定していたことに注意する(A を反転させてもう一度同じように DP をすれば良い)

反省

1 点固定はすぐに見えたが、この DP に至らなかった。ちゃんと式を書いて変数分離する。

提出コード

atcoder.jp