2026牛客寒假算法基础集训营1 Python解

寒假集训营第一场 (更新中

Edit Log

2026.02.04(首次编辑

前言

本帖为py玩家提供题解,顺便记录一下自己的刷题。一起进步呀~ (本蒟蒻在第一场训练赛只做出4道……今天听雨巨姐姐讲解发现全是血签 orz 好挫败

L:Need Zero

n=int(input())%10
for i in range(1,11):
    if (i*n)%10==0:
        print(i)
        break

K: Constructive

def sol(n):
    if n==1:
        print("YES")
        print("1")
    elif n==3:
        print("YES")
        print("1 2 3")
    else:
        print("NO")
        
t=int(input())
for _ in range(t):
    n=int(input())
    sol(n)

C: Array Covering

t = int(input())
for _ in range(t):
    n = int(input())
    a = list(map(int, input().split()))
    sum = max(a)*(len(a)-2)+a[0]+a[len(a)-1]
    print(sum)

E: Block Game

t=int(input())
for _ in range(t):
    n,k=map(int,input().split())
    l=list(map(int,input().split()))
    l.append(k)
    b=[]
    for i in range(n):
        b.append(l[i]+l[i+1])
    b.append(k+l[0])
    print(max(b))

A: A+B Problem

看着很ex的一道题,但是上手之后才发现……是真的很ex

import sys
res=828542813
mod=998244353
n=[
    '01110111','00010010','01011101','01011011','00111010',
    '01101011','01101111','01010010','01111111','01111011'
]

data=list(map(int,sys.stdin.read().split()))
ptr=0
t=data[ptr]
ptr+=1

for _ in range(t):
    c=data[ptr]
    ptr+=1
    p=data[ptr:ptr+7]
    ptr+=7
    p.insert(0,0)
    for i in range(1,len(p)):
        p[i]=(p[i]*res)%mod
    P=[0]*10  
    for i in range(10):
        r=1
        tmp=n[i]
        for j in range(1,8):
            if tmp[j]=='1':
                r=r*p[j]%mod
            else:
                r=r*(1-p[j]+mod)%mod
        P[i]=r
    rs=0
    for a in range(c+1):
        b=c-a
        a1=a//1000; a2=a//100%10; a3=a//10%10; a4=a%10  
        b1=b//1000; b2=b//100%10; b3=b//10%10; b4=b%10
        pa=P[a1]*P[a2]%mod*P[a3]%mod*P[a4]%mod
        pb=P[b1]*P[b2]%mod*P[b3]%mod*P[b4]%mod
        rs=(rs+pa*pb)%mod
    print(rs)
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务