py3mle + tle 求调
查看原帖
py3mle + tle 求调
1254229
A_r_k楼主2024/9/7 21:21
import sys
from collections import defaultdict, deque
from sys import stdin
sys.setrecursionlimit(20**4)
input = lambda: stdin.readline().rstrip()
def solve():
    n, m = map(int, input().split())
    g = defaultdict(lambda: [])
    for i in range(m):
        u, v = map(int, input().split())
        g[u].append(v)
        g[v].append(u)
    # 边少肯定不合法
    if m < n:return ['-1']
    vis = defaultdict(lambda : 0)
    ans = ['B'] * (n)
    def dfs(node,fas,flag):
        vis[node] = 1
        # 找到环之后,后继全涂白
        if flag:
            ans[node- 1]= 'W'
            for child in g[node]:
                if vis[child] == 0:
                    vis[child] = 1
                    dfs(child,fas,flag)
            return
        # 找环
        cnt = 0
        for child in g[node]:
            if flag == True:break
            if child in fas:
                cnt += 1
            if cnt >= 2:
                ans[node - 1] = 'W'
                flag = True
                break
        for child in g[node]:
            if vis[child] == 0:
                fas.add(node)
                dfs(child,fas,flag)
    dfs(1,set(),False)
    # 图不连通肯定也不行:
    for i in range(1,n+1):
        if vis[i] == 0:return ['-1']
    return ans
for i in range(int(input())): print(''.join(solve()))
2024/9/7 21:21
加载中...