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?

茶色コーダーによるABC377振り返り

Posted at

最初に

a~c問題が簡単でd問題からが一気に難しくなった
本当になにかの予選かという感じだった
僕はそのa~c早解きゲーに勝利し?緑パフォ出した
そしてチェス関連の問題が多かった

最近あったこと(話さなくていいので折りたたみ)
  • 前回で話していた自作ライブラリの調子が良くコーディングスピードがあがりました

  • zennに登録してスクラップ機能が良かったので今後も使おうと思う

  • ubuntuを2,3週間前に24.10にアップデートしたのだが 今更起動音を聞いてみたら臨場感がエグかった

  • yukicoderの作問が面白かったけどtester募集がほぼ無理 Xのアカウントが作れないため(中1だが2月生まれのためまだ12歳) 別に頼んでないので大丈夫です & 問題ストック 一つだけw

それじゃ一問ずつ感想書きますか

A問題

長さ3の文字列が与えられそれを並び替えて文字列 ABC ができますかという問題
僕は a b cのカウントを用意してそれがすべて1ならOKみたいなコードを書いた

ACコード(ライブラリ抜粋) 全文
関数名はご想像にお任せします(無責任) これがあと2つある

S = s()

a, b, c = 0, 0, 0

for t in S:
    if t == "A":
        a += 1
    elif t == "B":
        b += 1
    elif t == "C":
        c += 1

if a == 1 and b == 1 and c == 1:
    print("Yes")
else:
    print("No")

ライブラリ作ってんのならYesNo関数ぐらいは作らなきゃ

B問題

問題文を要約する
$8 \times 8$の盤面の情報が与えられます
(i,j)が.なら空マス #ならルークが置かれています
ルークはi行目に置かれているコマ と j列目に置かれているコマを取ることができます
あなたはすべてのルークに取られないようにコマを置く方法は何通りありますか

解法の文章化ができないので解説見て下さい すいません
解説URL

ACコード(ライブラリ抜粋) 全文
関数名はご想像にお任せします(無責任)

h = [False] * 8
w = [False] * 8

for k in range(8):
    l = list(s())

    if "#" in l:
        h[k] = True

    for i in range(8):
        if l[i] == "#":
            w[i] = True

ans = 0

for i in range(8):
    for k in range(8):
        if not w[k] and not h[i]:
            ans += 1

print(ans)

C問題

問題文が複雑なのでパス(コイツどんどん甘えてきている)

とりあえず取られる場所をすべてsetで保存して
それから条件を満たすマスの数をansに保存する
最終的な答えは$N^2-ans$でOK

ACコード(ライブラリ抜粋) 全文
関数名はご想像にお任せします(これで終了)

N, M = il()

L = set()

for _ in [0] * M:
    a, b = il()
    L.add((a, b))

    L.add((a + 2, b + 1))
    L.add((a + 1, b + 2))
    L.add((a - 1, b + 2))
    L.add((a - 2, b + 1))
    L.add((a - 2, b - 1))
    L.add((a - 1, b - 2))
    L.add((a + 1, b - 2))
    L.add((a + 2, b - 1))

ans = 0
n2 = N**2

for a, b in L:
    if 1 <= a <= N and 1 <= b <= N:
        ans += 1

print(n2 - ans)

D問題

C問題に続き問題文の要約はパス(コイツ本当に甘々だな)
色々考えたけどわからなかった
diff見たら緑中間ぐらいあった

解説URL

E問題

問題文を要約(コイツ急に復活したけど問題文すごい短い)
$P$iを$P$piで同時に更新する
以下の行動をK回繰り返す

ダブリングだと思ってやってたけど全然違った
そして青diffなめててすいません

最後に

やっぱり早解きゲーだった3完だけで緑パフォだった
そしてB問題の感想、飛車で説明しようかなと思ったが、自分で混乱してきて結局、問題文のまま説明した。
レートは50ぐらい上がりました
そしてAJLの中1がヤバそうです。青パフォ出した人がいて、今後大変そうです
あと同学年(中1)の同レート帯の方々すごい上がってた 出遅れ組になってしまいました

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?