hiro1729 競プロ

競プロの解説などを書きます。

ABC-B

ABC337-B 解説

B - Extended ABC 解法1 隣接する部分だけ見る方法 $S$ の隣接する2文字を見ます。これがAA,AB,AC,BB,BC,CCのいずれかならば$S$は拡張ABC文字列です。逆に言うと、BA,CA,CBのいずれかが含まれていると$S$は拡張ABC文字列ではありません。 S = input() for i …

ABC302-B 解説

B - Find snuke $H \times W$ のグリッドからsnukeを探す問題です。 解法1 向きに対して全部書く方法です。 H, W = map(int, input().split()) S = [input() for _ in range(H)] for i in range(H): for j in range(W - 4): if S[i][j] == 's' and S[i][j + …

ABC334-B 解説

B - Christmas Trees $L \le A+kM \le R$ を満たす整数 $k$ の個数を求める問題です。制約が大きいため、全探索では求められません。 これは $L-A \le kM \le R-A$ と言い換えられるので、$L-A$ 以上 $R-A$ 以下の $ M $ の倍数です。$L-A$ と $R-A$ の正負…

ABC328-B 解説

B - 11/11 月と日の組み合わせを全探索します。月と日の組み合わせが正しい条件は、月と日の全ての数字が等しいことなので、setに突っ込みます。 Python N = int(input()) D = list(map(int, input().split())) cnt = 0 for i in range(N): for j in range(1…

ABC327-B 解説

B - A^A $A^{A} = B \le 10^{18} < 16^{16}$ なので、$A$ として $15$ 以下を全て調べればいいです。 Pythonでは $0^{0}=1$ なので、そのケースを含まないように注意しましょう。 Python b = int(input()) for a in range(1, 19): if a ** a == b: exit(prin…