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 |
|
|
| 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 |