牛客刷题 | HJ68 成绩排序, HJ69 矩阵乘法,HJ70 矩阵乘法计算量估算

HJ68 成绩排序

题目链接
思路建立字典,key代表名字,value为数字,最后sorted函数按规定排序。注意名单中的名字会重名,所以key应该是名字加上编号,以免同名的分数被覆盖。将编号填充为3位数,方便最后输出名字的slice,即从第一位到倒数第三位,左闭右开。
代码

import sysn, order = int(input()), input()
dic = dict()
for i in range(n):inf = input().split(' ')dic[inf[0] + str(i).zfill(3)] = int(inf[1])if order == '0':for i in sorted(dic.items(), key = lambda x : x[1], reverse = True):print(i[0][:-3] + ' ' + str(i[1]))
else:for i in sorted(dic.items(), key = lambda x : x[1]):print(i[0][:-3] +' ' + str(i[1]))

HJ69 矩阵乘法

[题目链接](https://www.nowcoder.com/practice/ebe941260f8c4210aa8c17e99cbc663b?tpId=37&tqId=21292&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=)
思路
根据输入得到矩阵A,B,再直接根据题目中的公式计算乘积。

import sysx, y, z = int(input()), int(input()), int(input())
A = [[0] * y for _ in range(x)]
B = [[0] * z for _ in range(y)]
ans = [[0] * z for _ in range(x)]
for i in range(x):A[i] =[int(m) for m in input().split(' ')]
for i in range(y):B[i] = [int(m) for m in input().split(' ')]
for i in range(x):for j in range(z):cal = 0for k in range(y):cal += A[i][k] * B[k][j]ans[i][j] = cal
for i in range(x):out = [str(m) for m in ans[i]]print(' '.join(out))

HJ70 矩阵乘法计算量估算

思路:使用栈。遍历运算顺序,如果是左括号,跳过,如果是字母,就把字母对应的[行,列]写入栈中。如果遇到右括号,则弹出栈中最后两位,将乘法次数加入结果,把乘积得到的新矩阵的[行,列]加入栈。遍历结束后,如果栈中元素大于等于两个,就继续弹出两个,重复上述步骤,知道栈中只有一位元素。

代码

import sysn = int(input())
lis = []
for i in range(n):lis.append(list(map(int, input().split())))
op = input()
stack = []
ans = 0
for x in op:if x.isalpha():stack.append(lis[ord(x) - ord('A')])elif x == ')' and len(stack) >=2:m2, m1 = stack.pop(), stack.pop()ans += m1[0] * m1[1] * m2[1]new = [m1[0], m2[1]]stack.append(new)
while len(stack) >= 2:m2, m1 = stack.pop(), stack.pop()ans += m1[0] * m1[1] * m2[1]new = [m1[0], m2[1]]stack.append(new)print (ans)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/758956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第1章 数据管理

思维导图 1.1 引言 从数据中获取的价值不可能凭空产生或依赖于偶然,需要有目标、规划、协作、和保障,也需要管理和领导力。定义: 数据管理是为了交付、控制、保护并提升数据和信息资产的价值,在其整个生命周期中制定计划、制度、…

【Web】浅聊Hessian反序列化原生jdk利用与高版本限制绕过

目录 前言 原理分析 EXP Hessian2 低版本 直接Runtime命令执行 Hessian2 高版本 利用Unsafe加载恶意字节码二次调用触发初始化 利用TemplatesImpl实例化恶意类 jdk高版本打JNDI 前文:【Web】浅聊Hessian异常toString姿势学习&复现 前言 上篇文章介绍…

mysql笔记:23. 在Mac上安装与卸载MySQL

文章目录 下载MySQL安装包1. 打开MySQL官网,点击DOWNLOADS2. 点击GPL Downloads3. 点击MySQL Community Server打开下载页面4. 选择需要的文件进行下载5. ARM or x86 DMGbrewTAR卸载1. 在系统中卸载2. 在终端中卸载 MySQL对Mac电脑的适配十分强大,再加上…

Oracle with as用法

一、简介 with…as关键字,是以‘with’关键字开头的sql语句,在实际工作中,我们经常会遇到同一个查询sql会同时查询多个相同的结果集,即sql一模一样,这时候我们可以将这些相同的sql抽取出来,使用with…as定…

VMware迁移虚拟机后,源存储和新存储均能看到VM名称

描述:两台FC存储,各映射两个LUN。将源存储虚拟机迁移至新存储 源存储位置 DS5020-LUN1 新存储位置 V7000Test-LUN1 迁移任务均执行成功,无任何报错。但是有部分虚拟机迁移至新存储后,未释放源存储空间。在新旧存储列表都能看见…

后端使用前端页面的很好的推荐Layui

使用前提条件就是掌握初步的html,css,js脚本 后端被前端的vue等框架,不想学习,就是简单的一个页面满足后端使用 一般建议就是掌握了基础的html,css,js脚本后,然后就是深入学习了解jquery,再找…

手拉手整合Springboot3+RocketMQ2.3

RocketMQ 基本概念 消息模型Message Model RocketMQ 主要由 Producer、Broker、Consumer 三部分组成,其中 Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Bro…

PHP全新美化广告横幅在线制作源码

源码简介 可以做网站的引流不需要安装上传就可以使用,在第一版基础上做了二次开发更加好用 注意:主机和服务器均可架设搭建,如果使用宝塔架设点击访问的时候提示找不到文件路径的时候,记得点击网站目录把防跨站攻击先关闭,这样就可以正常访问了,这款是…

Mysql查询与统计

单表查询 例如:查询某个表中的某些数据 select * from 表名; select 字段1,字段2 from 表名; 多表查询:join on 例如:查询多个表中的数据,例如:表1写的是商品信息:商品ID,名字,表…

两台电脑简单的通信过程详解(局域网,同网段)

来源: https://www.bilibili.com/video/BV1BA411373b/ 一、原理 描述过程:分别以PC1、PC2、PC2、PC1的角度 二、eNSP测试 1.连接设备 2.查看PC1情况 3.打开抓包后,再ping一下PC2 4.PC1发送ARP报文 broadcast 意思为广播(IP都是f,意为255…

【数字图像处理matlab系列】保存图像

【数字图像处理系列】保存图像imwrite函数 使用函数imwrite可以将图像保存到本地上,该函数的语法为 imwrite(image_data, filename)其中,image_data是要写入的图像数据,可以是一个矩阵或一个三维数组(对于彩色图像)&…

C语言程序设计-谭浩强

文章目录 1 C语言2 算法3 顺序程序设计3.1 数据的表示形式3.2 输入和输出 4 选择程序结构5 循环程序结构6 数组7 函数模块化8 指针8.1 动态内存分配 9 结构类型9.1 链表9.2 共用体 union9.3 枚举 enum9.4 typedef 10 对文件的输入输出10.1 顺序读写10.2 随机读写 1 C语言 1.1 …

Java代码基础算法练习-求给定3个数, 进行从小到大排序-2024.03.20

任务描述&#xff1a; 输入三个整数 x,y,z(0<x<1000&#xff0c;0<y<1000&#xff0c;0<z<1000)&#xff0c;请把这三个数由小到大输出。 任务要求&#xff1a; 代码示例&#xff1a; package march0317_0331;import java.util.Scanner;public class m24…

nginx配置跨域

要在Nginx中配置跨域&#xff0c;您需要编辑Nginx的配置文件&#xff08;通常是nginx.conf&#xff09;&#xff0c;在相应的server或location块中添加CORS相关的响应头。以下是具体的配置步骤&#xff1a; 打开Nginx配置文件&#xff1a;您需要找到并打开Nginx的配置文件&…

python如何在正则表达式匹配成功的位置增加字符

如果你想在正则表达式替换时保持原匹配项不变并在其后添加新内容&#xff0c;你可以使用捕获组&#xff08;capture groups&#xff09;和后向引用&#xff08;backreference&#xff09;。在正则表达式中&#xff0c;捕获组可以通过在模式中使用圆括号来创建&#xff0c;然后可…

SQL基础知识

函数 #left() right() 左边或者右边的字符 #lower() upper() 转换成大写或小写的字符 #ltrim() rtrim() 去除左边或者右边的字符 #length() 长度&#xff0c;一字节为单位 #soundex() 转换为语音值 select * from student where soundex(coll) soundex(hello);日期和时间处理…

系统设计实例(一)百万级别用户系统

二、百万级别用户系统 原则&#xff1a; 尽可能地缓存数据采用无状态Web层支持多个数据中心在 CDN 中托管静态资源通过分片扩展数据层将层级拆分为独立的服务 负载均衡器 负载均衡器会将传入的流量均匀分配给在负载均衡集合中定义的Web服务器&#xff0c;用户直接连接负载均…

【软件测试】如何设计自动化测试脚本

企业中如何设计自动化测试脚本呢&#xff1f;今天我们就来为大家分享一些干货。 一、线性设计 线性脚本设计方式是以脚本的方式体现测试用例&#xff0c;是一种非结构化的编码方式&#xff0c;多数采用录制回放的方式&#xff0c;测试工程师通过录制回访的访问对被测系统进行…

[LCP 51. 烹饪料理] 子集型回溯

Problem: LCP 51. 烹饪料理 文章目录 思路案例分析Code 思路 子集型回溯有两种解法 输入视角 通过判断集合中的每一个元素 k&#xff0c;认为元素 k 被选入子集或不被选入子集&#xff0c;从而得到答案。其 dfs 形状是一个高度为 n 的二叉树。作为当前节点的元素 k 代表的是这…

Unity Toggle与Toggle Group的妙用

Toggle与Toggle Group结合使用&#xff0c;妙处多多。 因为在同一Toggle Group内只有一个Toggle可以被选中&#xff0c;那么对于我们要创建单选按钮组、游戏的一些开关、暗夜模式、筛选不同显示内容等功能都非常好用。 比如我要实现通过点击不同按钮,从而筛选显示不同内容&am…