CSP 201912-4 区块链 (python)

文章目录

题目

在这里插入图片描述
由于考场上只剩下半个小时了,看这题目也有点难,就放弃了,现在有时间了,复盘了下。发现如果不太了解区块链,一开始真的连题目都看不懂,看了半天才看懂这题目啥意思。
简单的说就是,有n个节点,每个节点都有一条主链,初始都是长度为1,只有一个创世块0。这n个节点通过m条边相连接。输入的命令有两种,一种是创建新块的命令,如a b c,表示节点a在时间b时在主链尾端加上新块c;另一种是查询命令,如a b,表示查询节点a在时间b时的主链。还有在节点更新了主链时要发送自己的主链给它的邻居。而节点更新有两种情况,一是创建新块,二是接受邻居的链。
题目大致就是如此了,详细的可以自己看看上面的原题。这题是一道典型的模拟题,看懂了题意代码就好写了。但自己python学的不太好,写的时候忘了python的列表和字典的直接赋值是浅拷贝,折腾了一个多小时。

代码

from copy import deepcopy
n,m=map(int,input().split())
G={
   
   }#邻接表
point={
   
   }#节点状态
command=[]#存储消息传递命令
for i in range(n):#节点状态初始化
    point[i+1]=[1,[0]]
for i in range(m):
    G[input()]=1
t,k=map(int,input().split())
def addcom(sr):#添加更新命令
    temp = []
    for i in range(n):
        if G.get(sr[0] + ' ' + str(i + 1), None) or G.get(str
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值