CCF CSP认证 历年题目自练Day31

题目一

试题编号: 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
请添加图片描述

题目分析(个人理解)

  1. 此题送分题,还是先看输入,第一行输入n,第二行输入n个数,每个数用空格分开。
  2. 再看输出,求的是每个数减去平均数在除以方差。
  3. 还是选择列表存储我将所有值都存入列表。我采用列表推导式。
    l=[i for i in map(int,input().split())]
  4. 然后用sum函数求和除以n获得平均数,用math库的sqrt函数来开根号求得F(ai)。
  5. 最后遍历输出fa即可。
  6. 上代码!!!
import math
D=[]
mean=0
n=int(input())
l=[i for i in map(int,input().split())]
mean=sum(l)/n
for i in range(n):d=abs(l[i]-mean)**2#不用abs求绝对值也行,只是数学逻辑严谨一些D.append(d)
Da=math.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,0)(1,1)(2,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) 处对应,则藏宝图右上角会超出绿化图边界,对应不成功。

题目分析(个人理解)

  1. 还是先读题目,大意是这样的,有一张地图A(绿化图,题目是这么叫的),用类矩阵表示里面只有数值1或0,1代表有树,0代表没树。还有一张图B(也就是题目中的藏宝图),B图比A图小,一样只有1或0表示是否有树,如何判断宝藏地点?
  2. 绿化图中有多少处坐标可以与藏宝图左下角对应,即可能埋藏着顿顿的宝藏。如何理解?就是满足b图作为A图的子图(0和1位置完全符合)且B图的左下角(只有一个点)才是一个藏宝地点,那么我只需要按照B图的大小以及数值,遍历A图(0和1)判断满足有几个子图那么就说明有几个藏宝地点这里尤其注意输入,不管A图还是B图都是左下角是(0,0)点,而且,最先输入的是B[s][0]最后输入的是B[0][s];所以当给B图赋值的时候要倒序遍历。
  3. 那么如何判断满不满足B图是A图的子图的条件呢?只需要从a图左下角依次遍历以b图左下角为开始到右上角的值是否都相等,如果都相等,那么就是子图,否则则不是。
  4. 代码如何具体实现?我选择列表存储A图和B图,具体用列表推导式,用二维列表表示01矩阵。
  5. 然后分别将A,B两图的值输入,然后依次(从A图左下角开始)把和B图同等大小的A图的局部图抠下来,去和B图判断是否相等即可。如果相等计数器加1,最后输出计数器数值。
  6. 上代码!!!(只能拿70分,因为抠下来的图太多了,占用空间太大)
n, L, S = map(int, input().split()) # n棵树,L绿化图大小,S藏宝图大小
A = [[0 for _ in range(L+1)] for _ in range(L+1)] # 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(S+1)] for _ in range(S+1)] # 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(S+1):T.append(A[i[0]+j][i[1]:i[1]+S+1])if T == B:res = res + 1
print(res)
  1. 只能换个思路了,第二种方法是这样的:
  2. 我完全可以只遍历A图中有树(值为1)的位置,作为B图的左下角(B图左下角必须有树,题目告诉了藏宝图左下角一定是一棵树)。那么我只需要遍历n次就可以判断完全。
  3. 为了减少判断次数,可先将是否满足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(s+1):money.insert(0, list(map(int, input().split())))
# 设置time值来记录绿化图中有多少处坐标可以与藏宝图左下角对应
time = 0
# 开始遍历树的坐标与藏宝图中的树的坐标进行比对
for x, y in points:# 设置一个标志值来判定是否符合藏宝图要求flag = 0# 开始遍历比对for i in range(s+1):for j in range(s+1):if (x+i > l) or (y+j > l): #藏宝图的要求:大小必然小于绿化图flag = 1breakif money[i][j]: if (x+i, y+j) not in temp:flag = 1breakelse:      if (x+i, y+j) in temp:flag = 1breakif flag == 1:  breakif flag == 0:time += 1
print(time)

总结

请添加图片描述

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

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

相关文章

Stm32_标准库_9_TIM

频率(HZ)是频率的基本单位1HZ是1s的倒数 STM32F103C8T6一般情况给定时器的内部时钟都是72MHz&#xff08;系统主频率&#xff09; TIM基本构成 计数器、预分频器、自动化重装 // 都是16位其中计数器、自动化重装&#xff0c;都是16位换算成10进制范围为[0, 655536] 时间 1 /…

【全网最细】谷歌小恐龙无敌代码它来了!

谷歌小恐龙是什么&#xff1f; 每次断网的时候&#xff0c;大家是不是都会玩一会&#xff0c;小恐龙快跑的游戏&#xff0c;或者在信息课上玩一玩&#xff0c;对不对&#xff1f; 还没玩过的小伙伴也不用担心&#xff0c;打开谷歌&#xff0c;输入这段网址&#xff1a;chrome…

C++智能指针(三)——unique_ptr初探

与共享指针shared_ptr用于共享对象的目的不同&#xff0c;unique_ptr是用于独享对象。 文章目录 1. unqiue_ptr的目的2. 使用 unique_ptr2.1 初始化 unique_ptr2.2 访问数据2.3 作为类的成员2.4 处理数组 3. 转移所有权3.1 简单语法3.2 函数间转移所有权3.2.1 转移至函数体内3.…

软件工程与计算总结(十一)人机交互设计

目录 ​编辑 一.引例 二.目标 三.人类因素 1.精神模型 2.差异性 四.计算机因素 1.可视化设计 2.常见界面类型 五.人机交互设计的交互性 1.导航 2.反馈 3.设计原则 六.设计过程 1.基本过程 2.界面原型化 一.引例 无论软件功能多么出色&#xff0c;亦或内部的构造…

LENOVO联想笔记本小新 Pro-14 2021AMD处理器ACH版(82MS)原厂Win10系统

下载链接&#xff1a;https://pan.baidu.com/s/1-KZ8Y9NmkS7nDXcMbhZLHw?pwdyrkx 系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、lenovo联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&#xff1a;ISO 文件大小&#xff1…

深入篇【C++】总结智能指针的使用与应用意义(auto_ptr/unique_ptr/shared_ptr/weak_ptr)底层原理剖析+模拟实现

深入篇【C】总结智能指针的使用与应用意义&&(auto_ptr/unique_ptr/shared_ptr/weak_ptr&#xff09;底层原理剖析模拟实现 智能指针的出现智能指针的使用应用意义/存在问题智能指针原理剖析模拟实现auto_ptrunique_ptrshared_ptrweak_ptr 智能指针的出现 首先我们要理…

vscode ssh linux C++ 程序调试

vscode调试c++程序相比vs2022要复杂很多,vs2022可以"一键运行调试",vscode则需要自己配置。 ​vscode调试程序时,会在当前工作目录产生.vscode 目录, 该目录有两个重要文件launch.json和tasks.json, 下面介绍两种调试方法: 手动调试和自动调试。 手动调试 不管…

VUE树结构实现

实现效果: 数据库表结构如下: 要求:需要有parentId,id。parentId就是父记录的id 表数据要求:一定不要让一条记录的parentid和id相同 前端代码: 注意:el-table标签里面需要加上属性,才可以有下拉箭头的样式 <el-table v-loading="listLoading" :data

Spring Boot中的异步编程:解决的问题与应用场景

Spring Boot中的异步编程&#xff1a;解决的问题与应用场景 在现代Web应用程序中&#xff0c;高并发和性能是至关重要的。为了处理大量的请求和任务&#xff0c;异步编程成为了不可或缺的一部分。Spring Boot提供了强大的异步编程支持&#xff0c;可以显著提高应用程序的吞吐量…

【Java 进阶篇】JavaScript Math对象详解

在JavaScript编程中&#xff0c;Math对象是一个非常有用的工具&#xff0c;用于执行各种数学运算。它提供了许多数学函数和常数&#xff0c;可以用于处理数字、执行几何运算、生成随机数等。在本篇博客中&#xff0c;我们将深入探讨JavaScript中Math对象的各种功能和用法。 什…

LiveMedia视频中间件视频隐私打码直播解决方案

一、方案背景 随着科技的发展&#xff0c;视频监控系统已经成为了我们生活中不可或缺的一部分。无论是在公共区域&#xff0c;还是在私人场所&#xff0c;我们都可以看到各种各样的监控设备。这些设备的出现&#xff0c;无疑提高了我们的生活安全&#xff0c;使得我们可以更好地…

Gin,Gorm实现Web计算器

目录 仓库链接0.PSP表格1. 成品展示1.基础运算2. 清零回退3.错误提示4.历史记录拓展功能1.前端可修改的利率计算器2.科学计算器3. 按钮切换不同计算器模式4.用户在一次运算后不清零继续输入操作符&#xff0c;替换表达式为上次答案 2.设计实现过程3.代码说明4.心路历程和收获 仓…

企业级CI/CD 持续集成/交付/发布

jenkins 安装与使用 nmcli g hostname jenkins 加载缓存 yum makecache fast 上传jdk11、jdk8 获取、上传war包 1、jenkins.io/download 2.4.27 2、老师发的 上传 maven 上传tomcat软件包 &#xff08;apache.org-tomcat8-下载&#xff09; 注意8009端口 /usr... vi /etc/pro…

react中ant.design框架配置动态路由

目录 什么是动态路由&#xff1f; 应用场景&#xff1a; ant.design动态路由如何配置&#xff1a; 首先&#xff1a;找到app.tsx文件 然后&#xff1a;找到menuHeaderRender 其次&#xff1a;修改menuHeaderRender为menuDataRender​编辑 最后&#xff1a;在箭头函数里re…

linux内存、cpu、进程、端口、硬盘管理

这里讲解一下linux内存、cpu、进程、端口、硬盘管理命令操作,更多linux常用命令见:一些经常使用的linux命令 一、内存、cup 管理 top 命令 1、top 命令的第一行 top - 10:11:23 up 12:10, 2 users, load average: 0.00, 0.02, 0.05 依次对应&#xff1a; 系统当前时间 10:11:…

Vite与Webpack谁更胜一筹,谁将引领下一代前端工具的发展

你知道Vite和Webpack吗&#xff1f;也许有不少“程序猿”对它们十分熟悉。 Webpack Webpack是一个JavaScript应用程序的静态模块打包工具&#xff0c;它会对整个应用程序进行依赖关系图构建。而这也会导致一个不可避免的情况&#xff0c;使用Webpack启动应用程序的服务器&…

C++指针解读(5)-- 指针和数组(多维数组)

相比一维数组&#xff0c;二维数组的概念和相关运算要复杂得多。 1、二维数组的存储及访问 假设有这么一个二维数组&#xff1a; int arr[3][4] {{ 10, 11, 12, 13 },{ 20, 21, 22, 23 },{ 30, 31, 32, 33 } }; 我们可以把二维数组看成数组的数组&#xff1a; &#xff…

Arduino驱动BNO055 10轴绝对定向传感器(惯性测量传感器篇)

目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序 BNO055是实现智能9轴绝对定向的新型传感器IC,它将整个传感器系统级封装在一起,集成了三轴14位加速度计,三轴16位陀螺仪,三轴地磁传感器和一个自带算法处理的32位微控制器。

在 Elasticsearch 中实现自动完成功能 3:completion suggester

在这篇博文中&#xff0c;我们将讨论 complete suggester - 一种针对自动完成功能进行优化的 suggester&#xff0c;并且被认为比我们迄今为止讨论的方法更快。 Completion suggester 使用称为有限状态转换器的数据结构&#xff0c;该结构类似于 Trie 数据结构&#xff0c;并且…

Net6 用imagesharp 实现跨平台图片处理并存入oss

项目要求&#xff1a;生成电子证书 一、模板文件在OSS中&#xff0c;直接加载 二、向模板文件添加二维码 三、向模板文件添加多行文字 四、生成二维码&#xff0c;存入本地&#xff0c; 五、向模板文件添加二维码 代码实现步骤 一、建立.net 6 API项目&#xff0c;安装N…