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

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

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

这个人的代码写的是真的好,已经到了斗气化马的境界了,能把不同的方法灵活运用。根据题意自动组合。比如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)

 盲眼复现问题集锦:

1.复制数据时有时候从下往上会在数据开头多复制空格之类的,导致input读取转化int时出错,复制应谨慎,一般报错和int相关基本上都是因为格式不对,没法转成int的格式

 2.个人感觉kickstart的结果判定类似于字符串比对,所以格式错误即使数值对也会判错,故一定要注意输出格式

print("Case #{}: {}".format(_+1,ans%1000000007))

调试时可能会写一些print判断变量值,记得提交前要删除

posted on 2019-11-20 09:00  黑暗尽头的超音速炬火  阅读(139)  评论(0)    收藏  举报