0
1

More than 1 year has passed since last update.

ABC286回答メモ

Last updated at Posted at 2023-01-22

0.はじめに
 Aがいきなりめんどい感じの問題で、これは・・・と思っていたら
 C、Dも難問で24時から仕事(在宅)ということもあり
 早々に終了してしまいました。

1.A - Range Swap
  面倒なだけで難しくはなかったのですが、Aにしては30行もかかってしまいました。

 考え方
  1)リストAを頭から見ていき(添え字i)、iがP-1の時、A[i]とA[R-1]と入れ替えてフラグを立ててカウントに1プラス。
  2)フラグが立っていたら、A[i]とA[R+カウント]と入れ替えてカウントに1プラス。
    →i=Q-1だったらフラグOFF
  
  と最初しましたが、P=Qの時うまくいかなかったので、1)の処理の時P=Qだったらフラグを立てないようにしてAC

 pythonの解答例はめちゃくちゃ短かったですが・・・。

 https://atcoder.jp/contests/abc286/submissions/38200374

2.B - Cat
  Aより簡単じゃないの??と謎に思いつつ回答

 考え方
  Sを頭から回答文字列に転記していき、転記した文字が”n”かつ次の文字が"a"だったら
  "y"を出力する。

 で、ACでした。

 https://atcoder.jp/contests/abc286/submissions/38202393

3.C - Rotate and Palindrome
  愚直に計算したら、TLEになるだろうなーと思い、諦めてしまいましたが
 解説を見たら愚直でも間に合うようなので、試したら意外と何とかなりました。

  考え方
   1)最大で、Sの半分に対してB円の操作を行えば、回文ができるのでB*(N//2)を回答ansに保持
   2)文字列Sについて、先頭からと末尾からを比較して、Bの操作が何回必要かをチェックし、
    Aの操作をしなかったときに必要な金額を求め、ansにmin数をセット
   3)Aの操作を1回した場合のチェックを行いansにmin数をセット・・・・→N回まで繰り返す

 https://atcoder.jp/contests/abc286/submissions/38239580

以上

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