kickstart技术战报——第一天2018

鄙人 效率太差 以至于 总是得熬夜早起 劳神耗力 感觉像吃干饭活到这么大的

天下武功 唯快不破 乱世英雄 拿出实力

代码真的只有默写才是掌握,看,动手编写,天下的方法海了去了,必须车轮战

这个人的代码写的是真的好,已经到了斗气化马的境界了,能把不同的方法灵活运用。根据题意自动组合。比如try catch来辅助递归和计算值,还有对数组进行提前赋值

另外我开始都没发现函数命名是 def a(i)的形式,以至于后面调用a(i)还以为是数组下标,数组下标就应该是[]。()应该是对函数的引用。开始时X=[None,x1]我还以为是赋值

所以跟着敲自己默才是正道

def x(i):
    try:
        return X[i]
    except:
        X.append((C*x(i-1)+D*y(i-1)+E1)%F)
        return X[i]

def y(i):
    try:
        return Y[i]
    except:
        Y.append((D*x(i-1)+C*y(i-1)+E2)%F)
        return Y[i]
    
def a(i):
    return (x(i)+y(i))%F

def power(i):
    power=0
    for subarray in subarrays:
        base=0
        for j in range(len(subarray)):
            base+=1
            power+=subarray[j]*base**i
    return power

T=int(input())
for t in range(T):
    N,K,x1,y1,C,D,E1,E2,F=map(int,input().split())
    X=[None,x1]
    Y=[None,y1]
    A=[]
    # 因为已经给了X[0]X[1]的值,所以赋值只发生在2-N
    for i in range(N):
        A.append(a(i+1))
    subarrays=[A[i:i+j] for i in range(0,N) for j in range(1,N-i+1)]
    POWER=0
    for i in range(1,K+1):
        POWER+=power(i)%1000000007
    POWER%=1000000007
    print('Case #{}:'.format(t+1),POWER)

猜你喜欢

转载自www.cnblogs.com/Marigolci/p/11895525.html
今日推荐