Как стратегия мода обрабатывает большой набор данных в конкурентном алгоритме? - PullRequest
0 голосов
/ 19 апреля 2020

Я принимал участие в раунде b кикстарта 2020, и моя последняя отправка в задаче c Расшифровка пути робота получила WA в TestSet2 (большой набор данных). Хотя я использую мод на каждом шагу, я все равно не мог решить его несколько раз. И я был исчерпан с 11 попытками ... Ниже мой код, написанный в python3

def solve(s):
    r, d = 0, 0
    stack = []
    muti = 1
    mod = 1000000000
    for i, c in enumerate(s):
        if c == '(':
            stack.append(s[i-1])
            muti = ((muti+mod)*(int(stack[-1])+mod)) % mod
        elif c == ')':
            muti = int(muti/int(stack.pop()))
        elif ord(c)>64:
            if c == 'N':
                d = (d - muti + mod) % mod
            elif c == 'S':
                d = (d + muti + mod) % mod
            elif c == 'W':
                r = (r - muti + mod) % mod
            else:
                r = (r + muti + mod) % mod
    return [r+1, d+1]
T = int(input())
for t in range(1, T+1):
    s = input()
    print("Case #{}: {}".format(t, " ".join(map(str, solve(s)))))
...