试题编号: | 202006-2 |
试题名称: | 稀疏向量 |
时间限制: | 2.0s |
内存限制: | 512.0MB |
60分解,用列表 下标和值配合存储数据,n最大取10的9次方,把为0的也存储下来了所以超了时间和空间。
n,a,b=map(int,input().split())
u=[0 for i in range(n+1)]
for i in range(a):
x,y=map(int,input().split())
u[x]=y
sum_=0
for i in range(b):
x,y=map(int,input().split())
if u[x]!=0:
sum_+=u[x]*y
print(sum_)
100分解,用字典存储,为的0就不存储了,数据最大5x10的5次方,不会超时间和空间。用get函数判断是不是有相同的数。
n,a,b=map(int,input().split())
u={}
for i in range(a):
x,y=map(int,input().split())
u[x]=y
sum_=0
for i in range(b):
x,y=map(int,input().split())
if u.get(x,1.6548941646)!=1.6548941646:
sum_+=u[x]*y
print(sum_)