求助
查看原帖
求助
1027116
Ohuoo楼主2023/9/14 14:15

过不了啊,一个都没过TAT

# @Time    : 2023/9/14 12:07
# @Author  : Ohuo
# @FileName: P1019 [NOIP2000 提高组] 单词接龙.py
# @Software: PyCharm

ans = 0
n = int(input())
ls = []
lp = [0] * n
for i in range(n):
    ls.append(input())
head = input()


def compareAndCombine(a: str, b: str):
    m = min(len(a), len(b))
    for indexI in range(m):
        if a[-indexI:] == b[:indexI]:
            s = a + b[indexI:]
            global ans
            ans = max(ans, len(s))
            return s
    return False


def dfs(new):
    for i in range(n):
        if lp[i] >= 2:
            continue
        con = compareAndCombine(new, ls[i])
        if con:
            lp[i] += 1
            dfs(con)
            lp[i] -= 1


if __name__ == '__main__':
    for i in range(n):
        if head == ls[i][0]:
            lp[i] += 1
            dfs(ls[i])
    print(ans)

2023/9/14 14:15
加载中...