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

 最近ARCの高レート化とかあったので、ABCにレベルの調整が入ったのか
 Bはやや難しく、Cは以前のBとCの間位、Dは以前のC位の難易度になった気がします。
 
 ということで、今回もDまでは難なくAC。
 E以降は、難しく解説を見てもちょっと分からない感じでした・・・。

 レートは順調に+11で798と、緑までほんとにあと一歩となりました。

1.A - Poisonous Oyster

 各牡蠣の状態(o正常、x痛んでる)と、青木君、高橋君の状態は以下。
 1234 高橋 青木
 xooo sick  sick
 oxoo sick  fine
 ooxo fine  sick
 ooox fine  fine
 あとは、入力したS1とS2の状態から、痛んでる牡蠣の番号を判断し
 出力して終了

 https://atcoder.jp/contests/abc393/submissions/62756299

2.B - A..B..C

 こういう時は、Bを固定してAとCを調べると聞いた気がしますが
 まぁ、そこまで制限は厳しくないのでAを起点に考えました。
 【考え方】
  ・Sを先頭から見ていく
  ・S[i]がAの時、以下のループを、”i+ループ回数×2”がSの長さを超えるまで繰り返す
   ・S[i+ループ回数]=B、S[i+ループ回数*2]=Cの時、回答用変数に1を加算
  ・最後に回答用変数を出力して終了

 https://atcoder.jp/contests/abc393/submissions/62771624

3.C - Make it Simple

 経路問題かと思いきや、単純な問題でした。
 【考え方】
  ・辺の中から除外する条件は以下
   ・始点と終点が同じ(自己ループ)
   ・各辺の小さい方を始点、大きい方を終点とした場合
    同一の辺がある辺(多重辺)
  ・辺をチェックしていき、上記条件に合う辺の数を数えて最後に出力

 https://atcoder.jp/contests/abc393/submissions/62775595

4.D - Swap to Gather

 【考え方】
  ・ある1を起点として左右の1を寄せた場合の操作数をそれぞれ求め一番小さい操作数を求める
   1.前から見ていき、各1までその前までの1を移動してきた場合の操作数を求める。
   2.後ろから見ていき、各1までその後ろの1を移動してきた場合の操作数を求める。
   3.各1毎の1と2で求めた値を足した値がその1まで前後の1を移動させてきた場合の操作数となる

 【実装】
  1.文字列の長さNと、文字列Sをインプット
  2.以下変数を定義
   X:始点から現在の位置までの1の数
   Y:前の1から現在の位置までの0の数
   Z:前の1までの操作数
   L:文字列Sのi文字目の1まで左側の1を詰めた場合の操作数リスト[0]×Nで初期化
   R:文字列Sのi文字目の1まで右側の1を詰めた場合の操作数リスト[0]×Nで初期化
   ans:回答する最小操作数。Nの5条で初期化
  3.以下N回ループ(index:i):Sを左からチェックしていき、その1までの1をすべて詰めるのに必要な操作数を計算
   -1.S[i]が1の時
    -1.L[i]にZ+(XY))をセット
    -2.Xに1加算
    -3.Yに0をセット
    -4.ZにL[i]をセット
   -2.S[i]が0の時
    -5.Yに1加算
  4.XYZを初期化
  5.以下N回ループ(index:i):Sを右からチェックしていき、その1までの1をすべて詰めるのに必要な操作数を計算
   -1.S[N-1-i]が1の時
    -1.L[N-1-i]にZ+(X
Y))をセット
    -2.Xに1加算
    -3.Yに0をセット
    -4.ZにL[N-1-i]をセット
   -2.S[N-1-i]が0の時
    -5.Yに1加算
  6.以下N回ループ(index:i):Sを右からチェックしていき、1の時その1に左右の1を集約した場合の操作数を計算
   -1.S[i]が1の時
    -1.ansに、ansとL[i]+R[i]の小さい方をセット
  7.ansを出力して終了

 https://atcoder.jp/contests/abc393/submissions/62796810

以上

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