結果
| 問題 | No.1560 majority x majority |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-09-11 03:30:07 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 931 bytes |
| 記録 | |
| コンパイル時間 | 170 ms |
| コンパイル使用メモリ | 85,716 KB |
| 実行使用メモリ | 263,988 KB |
| 最終ジャッジ日時 | 2026-03-06 00:29:16 |
| 合計ジャッジ時間 | 187,879 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 10 TLE * 16 |
ソースコード
#!/usr/bin/env python3
# from typing import *
import sys
import io
import math
import collections
import decimal
import itertools
import bisect
import heapq
def input():
return sys.stdin.readline()[:-1]
# sys.setrecursionlimit(1000000)
# _INPUT = """6 3
# 1 1 1
# 1 0 1
# 0 0 1
# 1 0 1
# 0 1 0
# 1 1 0
# """
# sys.stdin = io.StringIO(_INPUT)
INF = 10**10
N, M = map(int, input().split())
S = [list(map(int, input().split())) for _ in range(N)]
dp = [0] * (1<<M)
dp[0] = 1
for mask in range(1<<M):
for j in range(M):
if mask & (1<<j):
continue
n_all = 0
n_agree = 0
for i in range(N):
if all(S[i][j0] for j0 in range(M) if mask & (1<<j0)):
n_all += 1
if S[i][j]:
n_agree += 1
if n_agree*2 >= n_all:
mask1 = mask | (1<<j)
dp[mask1] += dp[mask]
ans = dp[(1<<M)-1]
print(ans)