Submission #70172971


Source Code Expand

"""
<方針>
- `N` は小さいが、`M` は bit 全探索できるほど小さくない。
- そこでまず、どのような黒白のパターンがあるかを全探索する。
- その上で、それを成立させられるように辺を切ってみれば良い。
- 一番辺を切った回数が少ないところを選べば良い。
- 全体として、`O(2^N・M)` となる。
"""

# 双方向グラフ構築。
N, M = map(int, input().split())
E = [[False]*N for _ in range(N)]
for _ in range(M):
  u, v = map(int, input().split())
  u -= 1
  v -= 1
  E[u][v] = True
  E[v][u] = True

# 最小削除数
ans = float("inf")

# 黒白全パターン
for b in range(1<<N):
  
  # 黒いところを保存する。
  black = [False]*N
  for bit in range(N):
    if(b>>bit & 1):
      black[bit] = True
  
  # 削除回数
  tmp = 0
  for u in range(N):
    for v in range(N):
      # 辺がつながっている & 色が同じ
      if(E[u][v] and (black[u] == black[v])):
        tmp += 1
  
  # 双方向でカウントしたので、半分にしておく。
  tmp //= 2
  
  # 更新する
  ans = min(ans, tmp)

# 出力
print(ans)

Submission Info

Submission Time
Task C - Bipartize
User mattsunkun
Language Python (PyPy 3.10-v7.3.12)
Score 350
Code Size 1190 Byte
Status AC
Exec Time 67 ms
Memory 82208 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 350 / 350
Status
AC × 3
AC × 25
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 56 ms 76632 KiB
00_sample_01.txt AC 55 ms 76520 KiB
00_sample_02.txt AC 66 ms 81740 KiB
01_random_03.txt AC 56 ms 76288 KiB
01_random_04.txt AC 66 ms 82168 KiB
01_random_05.txt AC 58 ms 80896 KiB
01_random_06.txt AC 60 ms 81164 KiB
01_random_07.txt AC 66 ms 82012 KiB
01_random_08.txt AC 63 ms 81812 KiB
01_random_09.txt AC 64 ms 81968 KiB
01_random_10.txt AC 65 ms 82020 KiB
01_random_11.txt AC 65 ms 81792 KiB
01_random_12.txt AC 67 ms 82208 KiB
01_random_13.txt AC 66 ms 81808 KiB
01_random_14.txt AC 66 ms 81748 KiB
01_random_15.txt AC 66 ms 81660 KiB
01_random_16.txt AC 66 ms 82200 KiB
01_random_17.txt AC 59 ms 81016 KiB
01_random_18.txt AC 57 ms 76664 KiB
01_random_19.txt AC 59 ms 80804 KiB
01_random_20.txt AC 60 ms 81516 KiB
01_random_21.txt AC 56 ms 76544 KiB
01_random_22.txt AC 56 ms 76412 KiB
01_random_23.txt AC 56 ms 76780 KiB
01_random_24.txt AC 56 ms 76600 KiB