yanchang
yanchang
发布于 2025-04-02 / 11 阅读
0
0

蓝桥杯准备第一天

闲言:今天是4.2,比赛时间4.12.好了可以开始学了,十天倒计时。

买个ipad差点被骗了,时间成本也是成本啊。算了,这方面先不想了。

做了一下14届的A组python。确实不是盖的,大部分都是动态规划的

三道题

allsum=20230610
num=1
nowsum=1
while allsum-nowsum > 0:
    allsum-=nowsum
    num+=1
    nowsum+=num
print(num)

codestr=input()
ak=[]
ok=1
for i in range(0,27): ak.append(0)
for i in codestr:
    ak[ord(i)-ord('a')]+=1
for i in range(0,27):
    if(ak[i]%2==1):
        ok=0
        break
if(ok):print("YES")
else:print("NO")

n=int(input())
outtxt=[]
use=set()
for i in range(n):
    N,M=map(int,input().split(" "))
    ak=[]
    ok=1
    for j in range(M):
        tag=0
        nownums=list(map(int,input().split(" ")))
        if(ok==0):
            continue
        innum=nownums[tag];tag+=1
        insum=0
        for k in range(innum):
            a=nownums[tag];tag+=1
            b=nownums[tag];tag+=1
            if(a==b and a==-1):
                insum=-1
            elif(a<j and b<len(ak[a])):
                if(insum!=-1):
                    if((a,b)in use):
                        ok=0
                    else:
                        use.add((a,b))
                    insum+=ak[a][b]
            else:
                ok =0
                # print(f"可能用了没发生的数据  a:{a}  b:{b}")
                break
        if(ok==0):
            continue
        #print(f"输入了{insum}元")
        outnum=nownums[tag];tag+=1
        outsum=0
        ac=[]
        for f in range(outnum):
            a=nownums[tag];tag+=1
            b=nownums[tag];tag+=1
            if(a<N):
                outsum+=b
                ac.append(b)
            else:
                ok=0
                continue
        if(insum!=-1 and outsum!=insum)or ok==0:
            ok=0
            #print(f"输出了{outsum}元")
            continue
        #print(f"输出了{outsum}元")
        ak.append(ac)
    if(ok==0):
      print("NO")
    #   outtxt.append("NO")
      continue
    # outtxt.append("YES")
    print("YES")

第三道题,不知道问题出现在哪里,好吧,动态要好好看看了,理论上不应该的啊啊啊


评论