1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

0.はじめに

 2週ぶりの参加。
 若干コンテストの事を忘れそうになりながらも、A~Cをさーっとクリアし
 DもてこずりながらACとなり、久々の4完。

 レートは+27の737となりました。

1. A - Too Many Requests

 判定後の出力が、Yes or Noではないところくらいが
 普段と違う問題。
 1~Nまでのループを作りその中でM以下かどうかを判断して
 出力する形でACでした。
 
 https://atcoder.jp/contests/abc429/submissions/70408909

2.B - N - 1

 リストAの合計値から、Mを引いた値(以下X)がリストAの中にあればよいので
 リストAをセット型に変換し、XがあればYes、無ければNoを出力する形でACでした。

 https://atcoder.jp/contests/abc429/submissions/70415024

3.C - Odd One Subsequence

 一定条件下での組み合わせ数の数え上げ問題。
 【考え方】
  ・数字毎に個数を求める
  ・ある数字がv個(v≧2)ある場合、その数字を2つと、それ以外の数字を1つ選ぶ組み合わせの数Pは
   以下の式で計算可能
   P=(v×(v-1))÷2)×(N(リストAの要素数)-v)
  ・2個以上あるすべての数字についてそれぞれPを求め、それらを合計すれば求める答えとなる

 難易度が比較的低かったせいか、久々に素早く解けました。

 https://atcoder.jp/contests/abc429/submissions/70423880

#4.D - On AtCoder Conference
 素直に、位置毎の会う人の人数を数え上げるのとTLEになるであろう問題。
 【考え方】
  1.スタート位置(0.5)をXとした場合に、時計回りに進んで会った人数がC人を超えた時点での出会った人の数をYとする
  2.スタート地点から進み、一番初めに出会う人の場所を4とすると、0.5~3.5の4か所の起点でY人と会う計算となるので
   0.5~3.5までに会う人の合計は4×Y人
  3.同様に、起点が4.5の場合のYを求めその後初めに会う人の場所までの起点数を掛けて・・を繰り返し
   M-1.5までの出会う人数を求める。

 デキュー等を使い、上記考え方に基づき実装したところACとなりました。
 工夫した点としては、2週目以降の計算が必要になる場合に備えた、周回用増分値(変数名MiO)を用意した点位です。

 https://atcoder.jp/contests/abc429/submissions/70456302

以上

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?