0
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.はじめに

 最近Dまで解けることが多くなってきて調子が
 揚がってきた今日この頃のコンテスト。
 A~Dまでは順調に解けたもののEは解けませんでした。
 そんなこんなでレートは+18で737まで回復しました。

1.A - 9x9

 A問題らしいすっきりした問題。
 読み込んだ3文字の1文字目と3文字目をint型にして
 掛けて出力して終了。

 https://atcoder.jp/contests/abc389/submissions/61783267

2.B - tcaF

 Bにしてはちょっと難易度高いかなと思いきや
 150点問題。
 iを2からNまで1つずつ増加するループを回し
 N=N÷iを繰り返し、Nが1になったタイミングの
 iを出力して終了。

 https://atcoder.jp/contests/abc389/submissions/61793740

3.C - Snake Queue

 とりあえずパッと問題を読んだところ
 ざっとみデキューを使えばいけるかなという感触でした。
 考え方
  ・蛇の先頭位置をクエリ2がない場合の位置ですべて保持
  ・クエリ2で除去した長さは保持しておく
  ・出力するときは除去した長さ分を引いた値を出力
 使用する変数
  ・LH:蛇の長さをそのまま入れるキュー
  ・SH:蛇の先頭位置を入れるキュー
  ・S:次の蛇の先頭値(初期値0)
  ・M:いなくなった蛇の合計
 処理
  ・タイプ1のクエリ
   ・LHにlを追加
   ・SHにSを追加
   ・Sにlを加算
  ・タイプ2のクエリ
   ・LHの左の値を取り出してpに格納
   ・SHの左の値を取り出し
   ・Mにpを加算
  ・タイプ3のクエリ
   ・SHのk番目の値からMを引いたものを出力

 https://atcoder.jp/contests/abc389/submissions/61803592

4.D - Squares in Circle

 座標問題なので逃げたくなりましたが、まぁ、次以降の問題もそれほど
 行ける気がしなかったので取り組みました。

 【考え方】
  ・以下は固定で円に入る
   ・原点のマス 1
   ・原点から4方Rマス 4×(R-1) (原点のマス分はマイナス) 
  ・原点から右上・左上・右下・左下の4つは同じ形になるので
   右上分のマスがどれだけ円の範囲になるかを調べ4を掛けて足す。
  ・円の範囲に入っているマス数の求め方
   ・X軸正方向のマスの1マス上、R-1マス(下図⑨)の右上頂点が円に入っているかをチェック
    (右上頂点の座標と原点の距離がR以内かをチェック)
    →入っていればR-1を合計マスに加算して上段(⑥)をチェック
    →入っていなければ、左隣のマス(⑧)をチェック・・・
    と、調べていき、段ごとに円に入るマス数を調べる
【参考図】
 通常数字は確定分、〇数字はチェック対象。
 R=4の時、①④⑤⑦⑧⑨が円の中
 3①②③
 2④⑤⑥
 1⑦⑧⑨
 0123

 【実装】
  1.Rを入力
  2.回答用変数ansに1+((R-1)4)をセット(固定で円に入る原点からの4方Rマス分)
  3.ユークリッド距離判定用変数DにR
Rをセット(平方根を求めなくてよいよう2乗分)
  4.X:段ごとにチェックする右端のマスの座標にR-0.5をセット
  5.s:右上部分のマス数合計に0をセット
  6.以下iを1~R-1まで繰り返し(参考図左端のように段毎に繰り返し)
   -1.y(チェックするマスの右上頂点のy軸座標)にi+0.5をセット
   -2.以下jを0~Xまで繰り返し(参考図最下段の3~0に向けてチェック)
    -1.x(チェックするマスのx座標の値)にX-jをセット
    -2.d(チェックするマスの右上頂点から原点の距離(の2乗))にxの2乗+yの2乗をセット
    -3.dがD以下の時(チェックしているマスの頂点が円内に入る場合)6-2.のループをブレイク
   -3.sにx-0.5を加算
   -4.Xにxをセット(上の段いこうxより右のマスが円の中に入ることは無いため)
  7.ansにs×4を加算したものを出力して終了

  最初6-4.のXの置換を入れていなかったため処理時間が長くなりましたが
  コンテスト中に気づけて事なきを得ました。

 https://atcoder.jp/contests/abc389/submissions/61829471

以上

0
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
0
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?