CCF CSP 2023年5月认证试题 202305-2 矩阵运算 python

思路

这种题目没有什么高深的坑,思路就是用模拟的方式计算,不过肯定会有时间、空间复杂度低的方法,只是我现在暂时还没开始想到,毕竟处理这种细琐的计算过程真的很费时间费精力。。。。

# 202305-2 矩阵运算

# n, d代表矩阵的大小,n-行,d-列,例如2*3
# n, d = int(input().split(' '))
n, d = input().split(' ')
n = eval(n)
d = eval(d)
Q = []
K = []
V = []
W = []
temp = []
num = []
最终结果 = []

# 接收Q
for i in range(n):
    Q.append(input().split(' '))
# 接收K
for i in range(n):
    K.append(input().split(' '))

# 先开始计算Q*K^T啦~
for i in range(n):
    temp = []
    for x in range(n):
        numTemp = 0
        for y in range(d):
            numTemp += (eval(Q[x][y]) * eval(K[i][y]))
        temp.append(numTemp)
    num.append(temp)

# 输入V
for i in range(n):
    V.append(input().split(' '))
    
# 接收W
W.append(input().split(' '))

# 开始计算与向量W的点乘
for x in range(n):
    for y in range(n):
        num[y][x] = num[y][x] * eval(W[0][x])

# 开始计算与V的乘积
for i in range(d):
    temp = []
    for x in range(n):
        numTemp = 0
        for y in range(n):
            numTemp += num[y][x] * eval(V[y][i])
        temp.append(numTemp)
    最终结果.append(temp)

for i in range(n):
    for x in range(d):
        print(最终结果[x][i], end=' ')
    print()

OJ判题结果

在这里插入图片描述
超时了,时间、空间复杂度太高,慢慢想想怎么优化吧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

圆圆的东柳君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值