提出 #6362690


ソースコード 拡げる

import sys
input = sys.stdin.readline
import itertools
import numpy as np
from scipy.sparse.csgraph import connected_components

H,W = map(int,input().split())
words = np.array([list(input().rstrip()) for _ in range(H)], dtype='U1')

def gen_pair_pattern_even(rest):
    # 偶数個を仮定
    if len(rest) == 0:
        yield []
        return
    if len(rest) == 1:
        x = rest.pop()
        yield [(x,x)]
        return
    li = list(rest)
    x = li[0]
    for y in li[1:]:
        se = rest.copy()
        se.remove(x)
        se.remove(y)
        for p in gen_pair_pattern_even(se):
            yield p + [(x,y)]    

def gen_pair_pattern(N):
    if N & 1:
        for n in range(N):
            se = set(x for x in range(N) if x != n)
            for p in gen_pair_pattern_even(se):
                yield p + [(n,n)]
    else:
        for p in gen_pair_pattern_even(set(range(N))):
            yield p

def test(row_pairs):
    graph = np.ones((W,W), dtype = np.bool)
    for r1,r2 in row_pairs:
        graph &= (words[r1][:,None] == words[r2][None,:])
    graph &= graph.T
    se = set(range(W))
    while se:
        removed = False
        for i,j in itertools.combinations(se,2):
            if graph[i,j]:
                se.remove(i)
                se.remove(j)
                removed = True
                break
        if not removed:
            break
    if len(se) > 1:
        return False
    return True

bl = False
for p in gen_pair_pattern(H):
    if test(p):
        bl = True
        break

answer = 'YES' if bl else 'NO'
print(answer)

提出情報

提出日時
問題 E - Symmetric Grid
ユーザ maspy
言語 Python (3.4.3)
得点 700
コード長 1635 Byte
結果 AC
実行時間 995 ms
メモリ 15768 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 700 / 700
結果
AC × 3
AC × 63
セット名 テストケース
Sample sample1.txt, sample2.txt, sample3.txt
All sample1.txt, sample2.txt, sample3.txt, 1.txt, 10.txt, 100.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 3.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 4.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 5.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, 56.txt, 6.txt, 7.txt, 8.txt, 9.txt, sample1.txt, sample2.txt, sample3.txt
ケース名 結果 実行時間 メモリ
1.txt AC 171 ms 13720 KiB
10.txt AC 175 ms 13720 KiB
100.txt AC 179 ms 13720 KiB
11.txt AC 239 ms 13720 KiB
12.txt AC 240 ms 13720 KiB
13.txt AC 242 ms 15768 KiB
14.txt AC 368 ms 13720 KiB
15.txt AC 800 ms 13720 KiB
16.txt AC 984 ms 13720 KiB
17.txt AC 994 ms 13720 KiB
18.txt AC 348 ms 13720 KiB
19.txt AC 961 ms 13720 KiB
2.txt AC 173 ms 13720 KiB
20.txt AC 689 ms 13720 KiB
21.txt AC 981 ms 13720 KiB
22.txt AC 955 ms 13720 KiB
23.txt AC 945 ms 15768 KiB
24.txt AC 616 ms 13720 KiB
25.txt AC 307 ms 13720 KiB
26.txt AC 966 ms 13720 KiB
27.txt AC 972 ms 13720 KiB
28.txt AC 978 ms 13720 KiB
29.txt AC 314 ms 13592 KiB
3.txt AC 176 ms 13720 KiB
30.txt AC 912 ms 13720 KiB
31.txt AC 955 ms 15768 KiB
32.txt AC 255 ms 15768 KiB
33.txt AC 968 ms 13720 KiB
34.txt AC 922 ms 13720 KiB
35.txt AC 937 ms 13720 KiB
36.txt AC 703 ms 13720 KiB
37.txt AC 845 ms 13720 KiB
38.txt AC 979 ms 13720 KiB
39.txt AC 823 ms 13720 KiB
4.txt AC 171 ms 13720 KiB
40.txt AC 934 ms 13720 KiB
41.txt AC 959 ms 13720 KiB
42.txt AC 936 ms 13720 KiB
43.txt AC 984 ms 13720 KiB
44.txt AC 315 ms 13720 KiB
45.txt AC 938 ms 13720 KiB
46.txt AC 369 ms 13720 KiB
47.txt AC 870 ms 13720 KiB
48.txt AC 991 ms 13720 KiB
49.txt AC 938 ms 13720 KiB
5.txt AC 176 ms 13720 KiB
50.txt AC 952 ms 13720 KiB
51.txt AC 908 ms 13720 KiB
52.txt AC 982 ms 13720 KiB
53.txt AC 995 ms 15768 KiB
54.txt AC 175 ms 13720 KiB
55.txt AC 175 ms 13720 KiB
56.txt AC 993 ms 13720 KiB
6.txt AC 174 ms 13720 KiB
7.txt AC 175 ms 13720 KiB
8.txt AC 174 ms 13720 KiB
9.txt AC 174 ms 13720 KiB
sample1.txt AC 174 ms 13720 KiB
sample2.txt AC 174 ms 13720 KiB
sample3.txt AC 502 ms 13720 KiB