快速建站平台源码,西安网页设计工作,青岛抖音seo,企业建网站公司多少钱题目一
试题编号#xff1a; 202206-1 试题名称#xff1a; 归一化处理 时间限制#xff1a; 500ms 内存限制#xff1a; 512.0MB 题目背景 在机器学习中#xff0c;对数据进行归一化处理是一种常用的技术。 将数据从各种各样分布调整为平均值为 0、方差为 1的标准分布 202206-1 试题名称 归一化处理 时间限制 500ms 内存限制 512.0MB 题目背景 在机器学习中对数据进行归一化处理是一种常用的技术。 将数据从各种各样分布调整为平均值为 0、方差为 1的标准分布在很多情况下都可以有效地加速模型的训练。 样例输入 7 -4 293 0 -22 12 654 1000 Data 样例输出 -0.7485510379073613 0.04504284674812264 -0.7378629047806881 -0.7966476369773906 -0.7057985054006686 1.0096468614303775 1.9341703768876082
题目分析个人理解
此题送分题还是先看输入第一行输入n第二行输入n个数每个数用空格分开。再看输出求的是每个数减去平均数在除以方差。还是选择列表存储我将所有值都存入列表。我采用列表推导式。 l[i for i in map(int,input().split())]然后用sum函数求和除以n获得平均数用math库的sqrt函数来开根号求得Fai。最后遍历输出fa即可。上代码
import math
D[]
mean0
nint(input())
l[i for i in map(int,input().split())]
meansum(l)/n
for i in range(n):dabs(l[i]-mean)**2#不用abs求绝对值也行只是数学逻辑严谨一些D.append(d)
Damath.sqrt(sum(D)/n)
for i in range(n):fa(l[i]-mean)/Daprint(fa)题目二
试题编号 202206-2 试题名称 寻宝大冒险 时间限制 500ms 内存限制 512.0MB 题目背景 暑假要到了。可惜由于种种原因小 P 原本的出游计划取消。失望的小 P 只能留在西西艾弗岛上度过一个略显单调的假期……直到……某天小 P 获得了一张神秘的藏宝图。 输出格式 输出到标准输出。 输出一个整数表示绿化图中有多少处坐标可以与藏宝图左下角对应即可能埋藏着顿顿的宝藏。
样例 1 输入 5 100 2 0 0 1 1 2 2 3 3 4 4 0 0 1 0 1 0 1 0 0 Data 样例 1 输出 3 Data 样例 1 解释 绿化图上 0,01,12,2三处均可能埋有宝藏。
样例 2 输入 5 4 2 0 0 1 1 2 2 3 3 4 4 0 0 0 0 1 0 1 0 0 Data 样例 2 输出 0 Data 样例 2 解释 如果将藏宝图左下角与绿化图 3,3 处对应则藏宝图右上角会超出绿化图边界对应不成功。
题目分析个人理解
还是先读题目大意是这样的有一张地图A绿化图题目是这么叫的用类矩阵表示里面只有数值1或0,1代表有树0代表没树。还有一张图B也就是题目中的藏宝图B图比A图小一样只有1或0表示是否有树如何判断宝藏地点绿化图中有多少处坐标可以与藏宝图左下角对应即可能埋藏着顿顿的宝藏。如何理解就是满足b图作为A图的子图0和1位置完全符合且B图的左下角只有一个点才是一个藏宝地点那么我只需要按照B图的大小以及数值遍历A图0和1判断满足有几个子图那么就说明有几个藏宝地点。这里尤其注意输入不管A图还是B图都是左下角是0,0点而且最先输入的是B[s][0]最后输入的是B[0][s]所以当给B图赋值的时候要倒序遍历。那么如何判断满不满足B图是A图的子图的条件呢?只需要从a图左下角依次遍历以b图左下角为开始到右上角的值是否都相等如果都相等那么就是子图否则则不是。代码如何具体实现我选择列表存储A图和B图具体用列表推导式用二维列表表示01矩阵。然后分别将AB两图的值输入然后依次从A图左下角开始把和B图同等大小的A图的局部图抠下来去和B图判断是否相等即可。如果相等计数器加1最后输出计数器数值。上代码只能拿70分因为抠下来的图太多了占用空间太大
n, L, S map(int, input().split()) # n棵树L绿化图大小S藏宝图大小
A [[0 for _ in range(L1)] for _ in range(L1)] # A绿化图坐标
t [] # 树的坐标列表
for _ in range(n): # 把n棵树写到A绿化图中x, y map(int, input().split()) # 每棵树的坐标t.append([x,y])A[x][y] 1
B [[0 for _ in range(S1)] for _ in range(S1)] # B藏宝图坐标
for i in range(S,0-1,-1): # 把局部树写到B藏宝图中B[i] list(map(int, input().split()))res 0 # 可能情况的数量
for i in t:if i[0] S L and i[1] S L:T [] # 同大小局部绿化图坐标for j in range(S1):T.append(A[i[0]j][i[1]:i[1]S1])if T B:res res 1
print(res)
只能换个思路了第二种方法是这样的我完全可以只遍历A图中有树值为1的位置作为B图的左下角B图左下角必须有树题目告诉了藏宝图左下角一定是一棵树。那么我只需要遍历n次就可以判断完全。为了减少判断次数可先将是否满足B图是A图的子图作为第一个判断条件具体就是如果A图中值为1坐标x,y轴分别加上B图的横纵长度如果超过A图的大小就不满足是A图子图的条件那么就没必要进行下一步判断了。 10.上代码
# 输入三个正整数 n、L 和 S分别表示西西艾弗岛上树的棵数、绿化图和藏宝图的大小
n, l, s map(int, input().split())
# 输入每棵树的坐标
points [[i for i in map(int,input().split())] for j in range(n)]
# 将树的坐标整理成集合的形式方便后面进行地图与树位置的比对
temp {}
for point in points:x, y point[0], point[1]temp[(x, y)] 1
# 建立藏宝图
money []
for i in range(s1):money.insert(0, list(map(int, input().split())))
# 设置time值来记录绿化图中有多少处坐标可以与藏宝图左下角对应
time 0
# 开始遍历树的坐标与藏宝图中的树的坐标进行比对
for x, y in points:# 设置一个标志值来判定是否符合藏宝图要求flag 0# 开始遍历比对for i in range(s1):for j in range(s1):if (xi l) or (yj l): #藏宝图的要求大小必然小于绿化图flag 1breakif money[i][j]: if (xi, yj) not in temp:flag 1breakelse: if (xi, yj) in temp:flag 1breakif flag 1: breakif flag 0:time 1
print(time)
总结