CCF CSP认证 历年题目自练Day31

news2024/11/26 10:16:07

题目一

试题编号: 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)/Da
    print(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 = 1
                break
            if money[i][j]: 
                if (x+i, y+j) not in temp:
                    flag = 1
                    break
            else:      
                if (x+i, y+j) in temp:
                    flag = 1
                    break
        if flag == 1:  
            break
    if flag == 0:
        time += 1
print(time)

总结

请添加图片描述

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

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

相关文章

Windows服务器监控工具

随着Windows服务器成为大多数网络不可或缺的一部分&#xff0c;一些关键业务功能永远依赖于它们的正常运行时间。其可用性和性能受到打击可能会对这些功能产生不利影响&#xff0c;进而极大地影响收入。 由于这些情况&#xff0c;通过主动衡量其性能并使用有效的Windows服务器…

html进阶语法

html进阶 列表、表格、表单 目标&#xff1a;掌握嵌套关系标签的写法&#xff0c;使用列表标签布局网页 01-列表 作用&#xff1a;布局内容排列整齐的区域。 列表分类&#xff1a;无序列表、有序列表、定义列表。 无序列表 作用&#xff1a;布局排列整齐的不需要规定顺序的…

21面向对象描述器

目录 1、什么是描述器&#xff1f; 1、原始的代码可以理解成为这样&#xff1a; 2、增加解释器可以改成如下&#xff0c;解释器就是集增删改查为一体的一个小的property 有一点需要注意的地方是&#xff1a;property里面内置的参数不是get_age()就是不用调用。 3、装饰器可…

【从零开始学习Redis | 第一篇】快速了解Redis

前言&#xff1a; 本篇对于Redis的讲解可以让我们简单的了解什么是Redis以及他的简单应用。主要还是因为我在学习苍穹外卖的时候&#xff0c;用到了这个知识点&#xff0c;而在平时的各种学习中&#xff0c;对于Redis的大名也是早有耳闻&#xff0c;因此今天来简单的介绍一下re…

基于动物迁徙优化的BP神经网络(分类应用) - 附代码

基于动物迁徙优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于动物迁徙优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.动物迁徙优化BP神经网络3.1 BP神经网络参数设置3.2 动物迁徙算法应用 4.测试结果…

推荐八个大学搜题软件和学习工具哪个好用且免费,一起对比看看

以下分享的软件提供了各种实用的功能&#xff0c;如数学公式计算、语文阅读辅助等&#xff0c;让大学生们在学习过程中更加高效和便利。 1.九超查题 这是一个老公众号了&#xff0c;我身边的很多朋友都在用&#xff0c;支持超新星、学习强国、知到、智慧树和各类专业网课题目…

PCB板的元素组成

PCB板是电子工艺一道重要的步骤&#xff0c;市面上几乎所有的电子产品的主板组成都是PCB板。 那正常一块PCB板上有哪些元素呢&#xff1f;正常一般会包括边框&#xff0c;过孔&#xff0c;通孔&#xff0c;铺铜等等。 焊盘&#xff1a; 就是用于焊接元器件&#xff0c;IC等引脚…

NSSCTF做题(9)

[GDOUCTF 2023]<ez_ze> 看见输入框而且有提示说是ssti注入 输入{{7*7}} 试试&#xff0c;发现报错 输入{%%}发现了是jinja2模板 找到关键函数 Python SSTI利用jinja过滤器进行Bypass ph0ebuss Blog 原理见这篇文章&#xff0c;这里直接给出payload {%set ninedict(aaa…

电子电器架构——基于Adaptive AUTOSAR的电子电器架构简析

基于Adaptive AUTOSAR的电子电器架构简析 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

Jetpack:007-Kotlin中的Button

文章目录 1. 概念介绍2. 使用方法2.1 Button2.2 IconButton2.3 ElevatedButton2.4 OutlinedButton2.5 TextButton2.6 FloatingActionButton 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack中输入框相关的内容&#xff0c;本章回中将要介绍 Button。闲话休提&#xff0…

微信小程序入门讲解【超详细】

一. 微信小程序简介 1.1 什么是小程序 2017年度百度百科十大热词之一 微信小程序&#xff08;wei xin xiao cheng xu&#xff09;&#xff0c;简称小程序&#xff0c;英文名Mini Program&#xff0c;是一种不需要下载安装即可使用的应用( 张小龙对其的定义是无需安装&#xf…

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

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

Spring Cloud--Nacos+@RefreshScope实现配置的动态更新

原文网址&#xff1a;Spring Cloud--NacosRefreshScope实现配置的动态更新_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍SpringCloud整合Nacos使用RefreshScope实现动态更新配置。 官网 Nacos Spring Cloud 快速开始 动态更新的介绍 动态更新的含义&#xff1a;修改应…

TOR(Top of Rack)

TOR TOR&#xff08;Top of Rack&#xff09;指的是在每个服务器机柜上部署1&#xff5e;2台交换机&#xff0c;服务器直接接入到本机柜的交换机上&#xff0c;实现服务器与交换机在机柜内的互联。虽然从字面上看&#xff0c;Top of Rack指的是“机柜顶部”&#xff0c;但实际T…

简述什么是值传递和引用传递?

1、什么是值传递,什么是引用传递? 值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。 引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数…

位于同一子网下的ip在子网掩码配置错误的情况下如何进行通信(wireshrak抓包分析)

前言 最近看书发现个问题&#xff0c;正好想学习下wireshark的使用&#xff0c;于是抓包做了下实验。 问题是这样的&#xff0c;假设有服务器A和服务器B&#xff0c;正确配置下两者处于同一子网&#xff1b;此时B的网络配置正确&#xff0c;而A在配置子网掩码时出了错&#xff…

Linux寄存器+Linux2.6内核进程调度队列+命令行参数+环境变量

目录 一、寄存器 二、Linux2.6内核进程调度队列 &#xff08;一&#xff09;优先级 &#xff08;二&#xff09;活动队列 &#xff08;三&#xff09;过期队列 &#xff08;四&#xff09;active指针和expired指针 三、命令行参数 &#xff08;一&#xff09;举例一 &…

二分查找:如何用最省内存的方式实现快速查找功能?

文章来源于极客时间前google工程师−王争专栏。 有序数据集合的查找算法&#xff1a;二分查找(Binary Search)算法&#xff0c;也叫折半查找算法。二分查找的思想非常简单&#xff0c;但是难掌握好&#xff0c;灵活运用更加困难。 问题&#xff1a;假设有1000万个整数数据&…

用 Three.js 创建一个酷炫且真实的地球

接下来我会分步骤讲解&#xff0c;在线示例在数字孪生平台。 先添加一个球体 我们用threejs中的SphereGeometry来创建球体&#xff0c;给他贴一张地球纹理。 let earthGeo new THREE.SphereGeometry(10, 64, 64) let earthMat new THREE.MeshStandardMaterial({map: albed…

2023年建筑电工(建筑特殊工种)证考试题库及建筑电工(建筑特殊工种)试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年建筑电工(建筑特殊工种)证考试题库及建筑电工(建筑特殊工种)试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人…