今日はABC開催日だったので参加した結果を適当に振り返る
https://atcoder.jp/contests/abc359
結果はAB2完の大☆玉☆砕
- ちくせう😢
前回4完できたのはたまたまDが簡単だったからみたい
なんとABC358D 灰diffだったそうで
感想をまとめる
A
ただの数え上げ
- 速攻で解いた
import sys
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
def err(*args): print(*args, file=sys.stderr)
def main():
N = rI()
cnt = 0
for i in range(N):
S = rS()
if S == "Takahashi":
cnt+=1
print(cnt)
if __name__ == '__main__':
main()
B
それぞれの色の位置の差が2になる数を探す、
これにきづくまでに5,6分のロス
from collections import Counter, defaultdict
import sys
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
def err(*args): print(*args, file=sys.stderr)
def main():
N = rI()
A = rLI()
d = defaultdict(lambda: -1)
cnt = 0
for i,a in enumerate(A):
if d[a] == -1:
d[a] = i
else:
if i - d[a] == 2:
cnt += 1
print(cnt)
if __name__ == '__main__':
main()
C
こういう座標系的な問題でると拒絶反応ができて困る
縦のコストは絶対かかるとして横のコストがわからなくて詰んだ。
なので以下は解説観てといたやつ
import sys
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
def err(*args): print(*args, file=sys.stderr)
def main():
x0,y0 = rLI()
xt,yt = rLI()
x0 -= (y0-x0)%2
xt -= (yt-xt)%2
distx = abs(xt-x0)
disty = abs(yt-y0)
cost = disty + (max(0,distx-disty)//2)
print(cost)
if __name__ == '__main__':
main()
D
難しそうでパスしたけどDP問題だったっていう
- これやればよかったorz
ほとんど解説からコピったけど一応ACしときました
https://atcoder.jp/contests/abc359/submissions/54854492
E
累積和的なもの?と勘違いして行けるかもとおもって沼った
セグ木使おうとしたけどうまくいかなくて時間切れ。
- しかも遅延セグ木じゃないと行けなかったという
というかスタックでよかったらしい
F,G
木がどうのこうのって見えた時点でそっ閉じ
まとめ
Cがむずくて撃沈
そしてDはDPでいけるのが分からなかった
E以降は実力不足
引き続き精進します