結果

問題 No.3710 Universal Tiles
コンテスト
ユーザー LyricalMaestro
提出日時 2026-09-21 18:26:52
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 1,220 ms / 2,000 ms
+ 427µs
コード長 1,192 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 66 ms
コンパイル使用メモリ 81,308 KB
実行使用メモリ 83,508 KB
最終ジャッジ日時 2026-09-21 18:27:02
合計ジャッジ時間 9,186 ms
ジャッジサーバーID
(参考情報)
judge4_0 / judge5_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 32
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

# https://yukicoder.me/problems/no/3710


def main():
    N, M = map(int, input().split())
    patterns = []
    for _ in range(N):
        S = []
        for _ in range(M):
            S.append(input())
        patterns.append(S)

    # 回転も含めたものを入れる
    patterns2 = []
    for S in patterns:
        p = []
        for _ in range(4):
            new_S = [["" for _ in range(M)] for _ in range(M)]
            for h in range(M):
                for w in range(M):
                    new_S[w][M - 1 - h] = S[h][w]

            p.append(new_S)
            S = new_S
        patterns2.append(p)

    # 答え合わせ
    answer = float("inf")
    for bit in range(4 ** N):

        index_list = [0] * N
        for i in range(N):
            index_list[i] = bit % 4
            bit //= 4

        ans = 0
        for h in range(M):
            for w in range(M):
                base = 0
                for i, o in enumerate(index_list):
                    p = patterns2[i][o][h][w]
                    if p == "#":
                        base |= 1
                ans += base
        answer = min(answer,ans)
    print(answer)

if __name__ == "__main__":
    main()
0