キーエンスプログラミングコンテスト2021-Nov. (AtCoder Beginner Contest 227) 参加記

2021/11/13に開催されたキーエンスプログラミングコンテスト2021-Nov. (AtCoder Beginner Contest 227)に参加しました。

atcoder.jp

前回のコンテストでは、なんと4桁パフォを出すことができて、レートの方も緑安全圏内に入ったところです。

次は4桁レート。その先は入水に向けて頑張るべく、今回は4桁パフォが取れるぐらいの結果が出ればという思いで臨むことにしました。

今回の結果

で、肝心の結果ですが、今回は3完止まりとなりましたとさ。。。

ABC227結果
ABC227結果

が、しかーし、Dがむずかった為か、結果的に水色パフォーマンスが出てくれて、レートの方も久々の900台に乗せることに成功しましたー。

振り返り

Dを解ききることができませんでした。

ABC227提出結果
ABC227提出結果

A問題

A - Last Card

一読して、足し算と剰余でなんとか解けそうな雰囲気があったが、どんな式なら良いかというところで結構つまづいてしまった。

結局、 (K + A - 1) \% Nを求めて、答えが0の場合はNを出力して帳尻を合わせる実装でなんとかACが取れました。

提出コード

https://atcoder.jp/contests/abc227/submissions/27213002

B問題

B - KEYENCE building

B問題にしては大分難し目な感じのするこの問題。

とりあえず、a, bそれぞれについて、200までというざっくりとした最大値を設定して、あとは面積として取りうる整数解をSetに突っ込んでから、各S_iがあるかどうかを判断すれば良いかと。

ということで、あとは実装だけしてAC。

提出コード

https://atcoder.jp/contests/abc227/submissions/27216662

C問題

C - ABC conjecture

過去、これに似たような問題で何回かつまづいた記憶があるので、今回は仕留めておきたいところ。

とりあえず、A, Bの2重ループを構成して、あとはAの取りうる値を、 A^{3} \leq Nまでとし、Bも同様の要領で最大値を決めればTLEにはならなさそう。

A, Bの値が決まれば、Cが取れる値の通り数は、(N \div (A \times B)) - B + 1となる。

あとは実装だけしてACが取れましたとさ。

提出コード

https://atcoder.jp/contests/abc227/submissions/27221253

D問題

D - Project Planning

問題文を見て、検討したところ、以下のような感じの解法でいけるのではないかと。

  1. まず配列Aを降順にソートする。
  2. A_Kの値を答えに足す。その後A_1からA_Kの要素それぞれからA_Kを引く。
  3. A_Kの値が0になるまで、1、2の処理を繰り返す。

で、なんとかサンプルが通る実装まで出来たものの、提出してみるとWAとTLEのダブルパンチを喰らってしまう。。

実装途中で、なんかプロジェクト数を固定して二分探索でできるんじゃないか的な考えが頭をよぎったものの、どうすれば答えを固定した時の作成可否が適切に判定できるかというところがよくわからない。

で、結局WAもTLEも解決しないまま時間切れとなりましたとさ。。

このD問題、順位表をみてもAC数が600台とD問題にしては少なめであった為、なんとかDを落としてもそこそこのパフォが出てくれたのがせめてもの救いでした。

コンテスト後、解説を見てみると、やはりというか二分探索で解く系の問題だったとのこと。まだこの問題が解けるまでには実力が追いついていないのかなーと考える次第です。

E問題

E - Swap

あまり時間もない状態でチラ見しましたが、何も思いつかずで終了となりました。

F問題

F - Treasure Hunting

問題すらみれておりません。

G問題

G - Divisors of Binomial Coefficient

問題すらみれておりません。

H問題

H - Eat Them All

問題すらみれておりません。

これまでの実績

水色パフォが出てくれたので、レートの方は大幅上昇。半年前のHighest更新も射程圏内となりました。

コンテスト実績
コンテスト実績

総括

今回は、問題の難易度に助けられたのか想定外のパフォーマンスが出てくれましたが、欲を言えばD問題が解けてくれたらパフォーハンスが大分跳ねてくれたのにという残念な気持ちもあります。

まあ、まぐれで高パフォーマンスをたたき出しても後がしんどいだけかもしれませんがね。

ということで、また次回も頑張ります。