蓝桥杯2023年第十四届省赛真题python A组 (个人的做题记录,没有全对,可以通过部分测试点)

2023-11-15

试题 A: 特殊日期

本题总分:5 分
【问题描述】 记一个日期为 yy 年 mm 月 dd 日,统计从 2000 年 1 月 1 日到 2000000 年 1 月 1 日,有多少个日期满足年份 yy 是月份 mm 的倍数,同时也是 dd 的倍数。

【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

下面是我自己的提交,目前不知道正确答案是什么。

def run(x):
    if(x%100!=0 and x%4==0 ):
        return 1
    elif x%400==0:
        return 1
    return 0
        
yrun=[31,29,31,30,31,30,31,31,30,31,30,31]
norun=[31,28,31,30,31,30,31,31,30,31,30,31]
msum=0

for i in range(2000,2000001):
    for j in range(1,13):
        if i%j!=0:
            continue
        if(run(i)):
            for k in range(1,13):
                for s in range(1,yrun[k-1]):
                    if(i%s==0):
                        msum+=1
            
        else:
            for k in range(1,13):
                for s in range(1,norun[k-1]):
                    if(i%s==0):
                        msum+=1
                
print(msum)
#426401585

试题 B: 分糖果

本题总分:5 分

【问题描述】 两种糖果分别有 9 个和 16 个,要全部分给 7 个小朋友,每个小朋友得到 的糖果总数最少为 2 个最多为 5 个,问有多少种不同的分法。 只要有其中一个小朋友在两种方案中分到的糖果不完全相同,这两种方案 就算作不同的方案。

【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

没做出来,暂时先放着

试题 C: 三国游戏 (10分)

题目描述
小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵X, Y, Z (一开始可以认为都为 0 )。游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i 个事件发生时会分别让 X, Y, Z 增加Ai , Bi ,Ci 。
当游戏结束时 (所有事件的发生与否已经确定),如果 X, Y, Z 的其中一个大于另外两个之和,我们认为其获胜。例如,当 X > Y + Z 时,我们认为魏国获胜。小蓝想知道游戏结束时如果有其中一个国家获胜,最多发生了多少个事件?
如果不存在任何能让某国获胜的情况,请输出 −1 。

输入格式

输入的第一行包含一个整数 n 。
第二行包含 n 个整数表示 Ai,相邻整数之间使用一个空格分隔。
第三行包含 n 个整数表示 Bi,相邻整数之间使用一个空格分隔。
第四行包含 n 个整数表示 Ci,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

样例输入

3
1 2 2
2 3 2
1 0 7

没做出来,空着

试题D -平均 (10分)

有一个长度为 n 的数组(n 是 10 的倍数),每个数 ai 都是区间 [0, 9] 中的整数。小明发现数组里每种数出现的次数不太平均,而更改第 i 个数的代价为bi,他想更改若干个数的值使得这 10 种数出现的次数相等(都等于n/10),请问代价和最少为多少。

输入格式

输入的第一行包含一个正整数 n 。
接下来 n 行,第 i 行包含两个整数 ai , bi ,用一个空格分隔。

输出格式

输出一行包含一个正整数表示答案。

样例输入

10
1 1
1 2
1 3
2 4
2 5
2 6
3 7
3 8
3 9
4 10
应该说就是模拟题, 根据题目意思,贪心一下就行。
每次修改代价最小的数字就行。 不难

n=int(input())
arr=[0]*10
ave=n//10
sr=[[] for i in range(10)]
for i in range(n):
    a,d=map(int,input().split())
    arr[a]+=1
    sr[a].append(d)
price=0
for i in range(10):
    b=[]
    if(arr[i]>ave):
        b=sr[i]
        b.sort()
        price+=sum(b[:arr[i]-ave])
print(price) 
"""
10
1 3
1 2
1 1
2 4
2 5
2 6
3 9
3 7
3 8
4 10
"""

可以通过全部测试点。
在这里插入图片描述

试题E -翻转 (也是模拟, 但是比赛的时候,没找对规律,只能过两个测试点) (15分)(只拿到2.3分)

小蓝用黑白棋的 n 个棋子排成了一行,他在脑海里想象出了一个长度为 n 的 01 串 T,他发现如果把黑棋当做 1,白棋当做 0,这一行棋子也是一个长度为 n 的 01 串 S。
小蓝决定,如果在 S 中发现一个棋子和它两边的棋子都不一样,就可以将其翻转变成另一个颜色。也就是说,如果 S 中存在子串 101 或者 010,就可以选择将其分别变为 111 和 000,这样的操作可以无限重复。
小蓝想知道最少翻转多少次可以把 S 变成和 T 一模一样。

输入格式

输入包含多组数据。
输入的第一行包含一个正整数 D 表示数据组数。
后面 2D 行每行包含一个 01 串,每两行为一组数据,第 2i − 1 行为第 i 组
数据的 Ti,第 2i 行为第 i 组数据的 Si,Si 和 Ti 长度均为 ni。

输出格式

对于每组数据,输出一行包含一个整数,表示答案,如果答案不存在请输出 −1。

样例输入

2
1000111
1010101
01000
11000

样例输出

2
-1

提示

对于 20% 的评测用例,1 ≤∑D1 ni ≤ 10 ;
对于所有评测用例,保证 1 ≤∑D1 ni ≤ 106 ,ni > 0 。

num=0 #这里错了,应该放到下面for循环里面的,每次都要重新计数。
不过改了之后,还是只能通过2个测试点。所以没啥用。

n=int(input())
num=0  #这里错了,应该放到下面for循环里面的,每次都要重新计数,真的很气
for i in range(n):
    T=list(input())
    S=list(input())

    if(len(S)!=len(T)):
        print(-1)
        continue
    if(S[0]!=T[0] or S[len(S)-1]!=T[len(T)-1]):
        print(-1)
        continue
    for j in range(len(S)):
        if(S[j]!=T[j]):
            if(j>=1 and j<len(S)-1):
                if(S[j-1]!=S[j] and S[j+1]!=S[j] and S[j-1]==S[j+1]):
                    num+=1
    print(num)

在这里插入图片描述

试题F 子矩阵 (忘记取模了, 真离谱,下次注意。) 15分 (只拿了1.3分)

给定一个 n × m (n 行 m 列)的矩阵。
设一个矩阵的价值为其所有数中的最大值和最小值的乘积。求给定矩阵的所有大小为 a × b (a 行 b 列)的子矩阵的价值的和。
答案可能很大,你只需要输出答案对 998244353 取模后的结果。

输入格式

输入的第一行包含四个整数分别表示 n, m, a, b ,相邻整数之间使用一个空格分隔。
接下来 n 行每行包含 m 个整数,相邻整数之间使用一个空格分隔,表示矩阵中的每个数 Ai, j 。

输出格式

输出一行包含一个整数表示答案。

样例输入

2 3 1 2
1 2 3
4 5 6

样例输出

58
提示
1×2+2×3+4×5+5×6 = 58 。

对于 40% 的评测用例,1 ≤ n, m ≤ 100 ;
对于 70% 的评测用例,1 ≤ n, m ≤ 500 ;
对于所有评测用例,1 ≤ a ≤ n ≤ 1000 1 ≤ b ≤ m ≤ 1000 1 ≤ Ai, j ≤ 109 。

暴力解法:
n,m,a,b=map(int,input().split())
#print(n,m,a,b)
arr=[]

def mi_max(x,y):
    mmin=arr[x][y]
    mmax=arr[x][y]
    for i in range(a):
        for j in range(b):
            if(arr[x+i][y+j]<mmin):
                mmin=arr[x+i][y+j]
            if(arr[x+i][y+j]>mmax):
                mmax=arr[x+i][y+j]
    return mmin*mmax
    
for i in range(n):
    k=list(map(int,input().split()))
    arr.append(k)
msum=0
for i in range(n-a+1):
    for j in range(m-b+1):
        msum+=mi_max(i,j)      
print(msum%998244353 )

就过了暴力的测试点
在这里插入图片描述

试题G 阶乘的和 (20分) (按下面结果显示拿了13.6分)

题目描述

给定 n 个数 Ai,问能满足 m! 为∑ni=1(Ai!) 的因数的最大的 m 是多少。其中 m! 表示 m 的阶乘,即 1 × 2 × 3 × · · · × m。

输入格式

输入的第一行包含一个整数 n 。
第二行包含 n 个整数,分别表示 Ai,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

样例输入

3
2 2 2

样例输出

3

提示

对于 40% 的评测用例,n ≤ 5000 ;
对于所有评测用例,1 ≤ n ≤ 105 1 ≤ Ai ≤ 109 。
在这里插入图片描述

n=int(input())
def jie(n):
    global mmin
    ms=1
    for i in range(mmin+1,n+1):
        ms=i*ms
    return ms
 
msum=0
s=list(map(int, input().split()))
mmin=min(s)
 
for j in range(n):
    if(s[j]==mmin):
        msum+=1
        continue
    msum+=jie(s[j])
 
#print(msum)
m=mmin
mmin=mmin+1
while msum>0:
    if(msum%mmin==0):
        m=mmin
        mmin+=1
        msum=msum//mmin
    else:
        break
print(m)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯2023年第十四届省赛真题python A组 (个人的做题记录,没有全对,可以通过部分测试点) 的相关文章

  • 从一个数组中删除另一个数组中的元素

    假设我有这些二维数组A and B 我怎样才能从中删除元素A那些在B 集合论中的补集 A B A np asarray 1 1 1 1 1 2 1 1 3 1 1 4 B np asarray 0 0 0 1 0 2 1 0 3 1 0 4
  • goJS 下拉菜单删除项目

    我有简单的 python Flask goJS 图形应用程序 如下所示 节点和链接文本的源是从应用程序的后端加载的 我将它们设置为model modelData像这样的部分 var graphDataString JSON parse di
  • 在Linux中的端口80上运行flask[重复]

    这个问题在这里已经有答案了 也许以前有过这个问题的答案 所以请重定向我 如果是这样的话 我正在考虑在端口 80 上运行 Flask 所以我检查了是否有任何东西正在使用端口 80 因为事实证明端口 80 没有运行 所以当我输入以下内容时 if
  • 如何在Python中找到低精度浮点值的原始文本表示?

    我遇到了显示问题floatPython 中的值 从外部数据源加载 它们是 32 位浮点数 但这也适用于较低精度的浮点数 以防万一 这些值是由人类在 C C 中输入的 因此与任意计算值不同 与round数字很 可能not预期的 但不能被忽略
  • python类型中的__flags__有什么用

    我最近阅读了pickle源代码 以下代码在copy reg让我很困惑 HEAPTYPE 1 lt lt 9 def reduce ex self proto assert proto lt 2 for base in self class
  • 硒网格监听节点端口而不是集线器端口

    对于我的测试 我在不同的端口上本地运行网格和节点 java jar usr bin selenium server jar port 4444 role hub java jar usr bin selenium server jar ro
  • Python绕相机轴旋转图像

    假设我有一个图像 是在对某些原始图像应用单应性变换 H 后获得的 未显示原始图像 将单应性 H 应用于原始图像的结果是该图像 我想围绕合适的轴 可能是相机所在的位置 如果有的话 将此图像旋转 30 度以获得此图像 如果我不知道相机参数 如何
  • gcloud app deploy:此部署有太多文件

    当我尝试通过 gcloud 部署我的 GAE 应用程序时 出现以下错误 Updating service default failed ERROR gcloud app deploy Error Response 400 This depl
  • 为什么 np.linalg.norm(..., axis=1) 比写出向量范数公式慢?

    标准化矩阵的行X对于单位长度 我通常使用 X np linalg norm X axis 1 keepdims True 在尝试优化算法的此操作时 我非常惊讶地发现在我的机器上写出标准化的速度大约快了 40 X np sqrt X 0 2
  • 将Python嵌入到C中——导入模块

    我在使用嵌入式 Python for C 时遇到问题文档 http docs python org extending embedding html 每当我尝试使用导入的模块时 我都会得到 PythonIncl exe 中 0x1e089e
  • 在 Pyinstaller、语音识别和 Pyttsx3 中使用“-w”时,PySimpleGUI 中出现“OSError:[WinError 6] 句柄无效”

    所以我用 PySimpleGUI 创建了一个程序 然后用 Pyinstaller 从它创建了 exe 文件 这是我的命令 pyinstaller hidden import pyttsx3 drivers hidden import pyt
  • UTF-8 解码如何知道字节边界?

    我一直在阅读大量有关 unicode 编码的文章 尤其是有关 Python 的文章 我想我现在对此已经有了相当深入的了解 但仍有一个小细节我有点不确定 解码如何知道字节边界 例如 假设我有一个带有两个 unicode 字符的 unicode
  • Python 将 0 计算为 False

    在 Python 控制台中 gt gt gt a 0 gt gt gt if a print L gt gt gt a 1 gt gt gt if a print L L gt gt gt a 2 gt gt gt if a print L
  • 如果工作表不存在,Pandas 将工作表附加到工作簿,否则覆盖工作表

    我正在使用 pandas 更新现有的 Excel 工作簿 当使用ExcelWriter对象 我可以覆盖工作表 如果存在 否则创建一个新工作表吗 我的代码附加了新工作表 但是当我尝试覆盖现有工作表时 它会附加一个名称略有不同的新工作表 例如
  • Python服务器“通常只允许每个套接字地址使用一次”

    我正在尝试用 python 创建一个非常基本的服务器 它侦听端口 当客户端尝试连接时创建 TCP 连接 接收数据 发回某些内容 然后再次侦听 并无限期地重复该过程 这是我到目前为止所拥有的 from socket import server
  • 桨在移动时留下痕迹(Pygame Pong 游戏)[重复]

    这个问题在这里已经有答案了 我的游戏中的球拍有问题 每次我试图移动它时 桨都会留下一条 痕迹 我想这是因为我的代码没有删除旧位置的前一个桨 如果是的话怎么删除之前的呢 我应该使用blit Code import pygame sys ran
  • Django 单元测试数据库没有被拆除?

    我编写了一些单元测试来测试我的 Django 应用程序 特别是一个测试套件中包含大量代码setUp 功能 所述代码的目的是为数据库创建测试数据 是的 我了解固定装置 并且选择在这种情况下不使用它们 当我运行单元测试套件时 运行的第一个测试通
  • 如何在Python中一次比较二维数组的2列与另一个数组的列

    我有两个字符串数组 每个数组有三列 我想比较两个二维数组的前两列 有 3 列和 4000 行 如果它们匹配 那么我需要那些匹配的值 但是我的代码不起作用 这是一个示例 array1 1stcolumn 2ndColumn 3rdColumn
  • 添加条件计数器:基于其他列的值的计数器列

    我有一张这样的桌子 id id2 val a red apple a red orange b blue fish c violet beef a yellow banana a black pork 我想根据 id 和 id2 的值创建一
  • 从 Python 访问 802.11 无线管理帧

    我想从 Linux 上的 Python 嗅探 802 11 管理 探测请求 帧 这可以从 Scapy 中实现 如下所示 coding utf 8 from scapy all import def proc p if p haslayer

随机推荐

  • 多态原理探究

    概念 当类中声明虚函数时 编译器会在类中生成一个虚函数表 虚函数表是一个存储类成员函数指针的数据结构 虚函数表是由编译器自动生成与维护的 virtual成员函数会被编译器放入虚函数表中 当存在虚函数时 每个对象中都有一个指向虚函数表的指针
  • FFmpeg简介及在vc2010下编译步骤

    FFmpeg是一个开源的多媒体库 最新版本是2 4 3 它的License是LGPL或GPL FFmpeg可以用来记录 转换数字音频 视频 并能将其转换为流的开源计算机程序 它包括了音 视频编码库libavcodec FFmpeg是在Lin
  • [mmdetection 混合精度]用fastrcnn实测混合精度fp16效果2

    用官方检测工具测试 平均时间 0 0947 0 1298 0 72958 map比较 faster rcnn r50 fpn 1x coco py fp16训练后map 结论 map下降不明显 但平均训练时间降低了27 fp16还是很好的
  • uni-app混合开发中的链接跳转navigateTo、reLaunch、redirectTo、switchTab区别

    1 navigateTo 保留当前页面 跳转到应用内的某个页面 使用uni navigateBack可以返回到原页面 要注意的是navigateTo只能跳转的应用内非 tabBar 的页面的路径 路径后可以带参数 如果跳转url参数为tab
  • kubeadm 安装 kubernetes 1.4.6

    kubeadm 安装 kubernetes 1 4 6 准备 安装docker 下载镜像 安装kubernetes 安装kubernetes dashbord 准备 机器名 ip centos7 kubermaster 192 168 10
  • C语言入门--3x3转置矩阵

    题目 答题思路 我这里使用的是两个多维数组 因此此段代码仅需修改输入部分既可用于多种对称矩阵的转置 第一个多维数组用于记录原始的矩阵排列 第二个多维数组用于记录转置后的矩阵排列 我的思路很简单 先将右上角的数交换到左下角 本人非数学专业 专
  • Redis学习;Redis主从复制

    主从复制 是指将一台Redis服务器的数据 复制到其他的Redis服务器 前者称为主节点 Master Leader 后者称为从节点 Slave Follower 数据的复制是单向的 只能由主节点复制到从节点 主节点以写为主 从节点以读为主
  • QAnimation的介绍

    QAnimation的介绍 QAnimation是Qt框架中提供的一个动画类 用于实现GUI控件的各种动画效果 可以通过QAnimation实现如平移 旋转 缩放等动态效果 同时还支持动态添加或删除控件等操作 基本用法 创建和启动动画 通过
  • Libsvm:脚本(subset.py、grid.py、checkdata.py)

    1 脚本 This directory includes some useful codes 1 subset selection tools 子集抽取工具 subset py 2 parameter selection tools 参数选
  • c#基础之WPF

    学习平台 微软开发者博客 DevBlogs Microsoft Developer Blogs 微软文档与学习 Microsoft Learn 培养开拓职业生涯新机遇的技能 微软开发者平台 Microsoft Developer WPF基础
  • Java-String类

    Java String类 1 概述 String 字符串 使用一对 引起来表示 String声明为final的 不可被继承 String实现了Serializable接口 表示字符串是支持序列化的 实现了Comparable接口 表示Str
  • Iptables封禁IP,记录地址

    前言 前段时间开了台国外的vps 以前机房的物理防火墙有十年网工大佬维护 我们对外访问的nginx上就没遇到过这种攻击 毕竟有问题的IP全被防火墙那层直接拦截了 而我这通过安全组把其中2个web端口放开了所有网段 而nginx再限制网段 导
  • 疫情日记(01)

    时间 2022年12月16日15 01 14 天气 阴天 地点 西安 12月8日全面放开以来 确诊这个词语也再是谈之色变了 似乎一旦 规定 疫情没有了 就真的没有了一样 两天前知道了ljc可能是确诊了 再后来就是办公室两个小兄弟 jc和qy
  • FAT文件系统初识

    最近在阅读 现代操作系统 的时候看到了fat32系统的讲解 在这里记录一下 我觉得fat32文件系统首先是基于链表分配的机制的 首先有一个基础知识 就是文件是由一系列的块组成的 想要访问完整的文件 就必须知道这个文件的所有的块的位置 链表分
  • Unity3d C#使用XCharts数据显示格式说明(如:数据类型、数据显示为百分比%等)

    前言 XCharts是开源且比较强大的插件 在Unity3d中搭建UI时常常使用的数据图表的制作插件 特别是当下的数字沙盘 数字孪生等项目中应用较广 笔者公司也一直在使用该插件 本文主要是在开发过程中的一个小需求引发的整理分享 在项目中需要
  • 前端自动化测试精讲

    单元测试 端对端测试 持续集成方案 在项目中落地前端自动化测试 作者介绍 祯民 字节跳动前端开发工程师 掘金小册 SSR实战 官网开发指南 作者 公众号 祯民讲前端 作者 曾负责 抖音前端技术团队官网 和 字节官网中文版 的开发 现维护抖音
  • git撤销加入暂存区(git add)的文件

    直接使用git reset加对应的文件或 来撤销 这个命令可以理解为git add的反向操作 可以撤销单个文件 也可批量 如 git reset xxx xxx xxx 或 git reset
  • C语言常见问题——++i与i++详解

    目录 一 i与i 1 引例 2 i i i 与 i i i 3 总结 二 函数中的 1 printf中的 2 作为函数的参数 3 总结 一 i与i 1 引例 对于如下程序 其输出结果是什么 include
  • 《算法导论》15章-动态规划 15.1 钢条切割(含有C++代码)

    一 引入 动态规划方法通常用来求解最优化问题 optimizationproblem 这类问题可以有很多可行解 每个解都有一个值 我们希望寻找具有最优值 最小值或最大值 的解 我们称这样的解为问 题的一个最优解 an optimal sol
  • 蓝桥杯2023年第十四届省赛真题python A组 (个人的做题记录,没有全对,可以通过部分测试点)

    试题 A 特殊日期 本题总分 5 分 问题描述 记一个日期为 yy 年 mm 月 dd 日 统计从 2000 年 1 月 1 日到 2000000 年 1 月 1 日 有多少个日期满足年份 yy 是月份 mm 的倍数 同时也是 dd 的倍数