草庐IT

【蓝桥杯】第十三届蓝桥杯大赛软件赛决赛-Python大学B组【纯暴力解法记录】

Bessie_Lee 2023-04-04 原文

持续更新ing......

文章小记:本文是记录蓝桥杯真题暴力解法的帖子,其中有部分题目会因为时间超时而无法通过。

题目名字
C题取模
D题内存空间
E题近似 GCD
F题交通信号
G题点亮
H题打折
I题owo
J题替换字符

现在开始一题题的暴力解决:

C题 取模 ⏰

题目描述

给定 n, m ,问是否存在两个不同的数 x, y 使得 1 ≤ x < y ≤ m 且 n mod x = n mod y 。

输入格式

  • 输入包含多组独立的询问。
  • 第一行包含一个整数 T 表示询问的组数。
  • 接下来 T 行每行包含两个整数 n, m,用一个空格分隔,表示一组询问。

输出格式

输出 T 行,每行依次对应一组询问的结果。如果存在,输出单词 Yes;如果不存在,输出单词 No。

样例输入

3
1 2
5 2
999 99

样例输出

No
No
Yes

cols = int(input())

list_cols = []
for i in range(cols):
    n_1,m_1=map(int,input().strip().split())
    list_cols.append([n_1,m_1])


for j in range(cols):
    flag = False
    for x in range(1,list_cols[j][1]+1):
        for y in range(x+1,list_cols[j][1]+1): 
            if (list_cols[j][0]%x == list_cols[j][0]%y):
                flag = True
    if flag:
        print("Yes")
    else:
        print("No")

D题 内存空间🎈

题目描述

小蓝最近总喜欢计算自己的代码中定义的变量占用了多少内存空间。

为了简化问题,变量的类型只有以下三种:

int:整型变量,一个 int 型变量占用 4 Byte 的内存空间。

long:长整型变量,一个 long 型变量占用 8 Byte 的内存空间。

String:字符串变量,占用空间和字符串长度有关,设字符串长度为 L,则字符串占用 L Byte 的内存空间,如果字符串长度为 0 则占用 0 Byte 的内存空间。

定义变量的语句只有两种形式,第一种形式为:

type var1=value1,var2=value2…;

定义了若干个 type 类型变量 var1、var2、…,并且用 value1、value2、…初始化。

多个变量之间用’,’ 分隔,语句以’;’ 结尾,type 可能是 int、long 或 String。例如 int a=1,b=5,c=6; 占用空间为 12 Byte;long a=1,b=5; 占用空间为 16 Byte;String s1=””,s2=”hello”,s3=”world”; 占用空间为 10 Byte。

第二种形式为:

type[] arr1=new type[size1],arr2=new type[size2]…;

定义了若干 type 类型的一维数组变量 arr1、arr2…,且数组的大小为 size1、size2…,多个变量之间用’,’ 进行分隔,语句以’;’ 结尾,type 只可能是 int 或 long。例如 int[] a1=new int[10]; 占用的内存空间为 40 Byte;long[] a1=new long[10],a2=new long[10]; 占用的内存空间为 160 Byte。

已知小蓝有 T 条定义变量的语句,请你帮他统计下一共占用了多少内存空间。结果的表示方式为:aGBbMBcKBdB,其中 a、b、c、d 为统计的结果,GB、MB、KB、B 为单位。优先用大的单位来表示,1GB=1024MB,1MB=1024KB,1KB=1024B,其中 B 表示 Byte。如果 a、b、c、d 中的某几个数字为 0,那么不必输出这几个数字及其单位。题目保证一行中只有一句定义变量的语句,且每条语句都满足题干中描述的定义格式,所有的变量名都是合法的且均不重复。题目中的数据很规整,和上述给出的例子类似,除了类型后面有一个空格,以及定义数组时 new 后面的一个空格之外,不会出现多余的空格。

输入格式

输入的第一行包含一个整数 T ,表示有 T 句变量定义的语句。

接下来 T 行,每行包含一句变量定义语句。

输出格式

输出一行包含一个字符串,表示所有语句所占用空间的总大小。

样例输入

1
long[] nums=new long[131072];

样例输出

1MB

# 算法思路:
# - 确保输入的类型是哪一种,进行计算内存
# - 内存大小输出:以1024为被除数依次输出

# 记录存储空间大小
int_len = 4
long_len = 8
string_len = 1

# 记录每一种类型的数据长度
int_count = 0
long_count = 0
string_count = 0
int_matrix_count = 0
long_matrix_count = 0
sum_count = 0

# 输入
cols = int(input()) 
list_cols = [] 
for i in range(cols):
    list_cols.append(str(input()).strip().split(",")) 
# 输入处理
# - 输出数据处理
for x in range(cols):
    # int类型 - 直接算
    if (list_cols[x][0][0:4] == "int "):
        int_count = len(list_cols[x]) * int_len
    # long类型 - 直接算
    if (list_cols[x][0][0:5] == "long "):
        long_count = len(list_cols[x]) * long_len
    # string类型 - 以"为分隔符
    if (list_cols[x][0][0:7] == "String "):
        for y_str in range(len(list_cols[x])) :# 一行有几个变量
            # 计算划分后每一个长度的第一个的len作为一个变量的内存
            len_temp_str = len(list_cols[x][y_str].split("\"")[1])
            string_count += len_temp_str
    # int[] 类型 - 以[为分隔符    
    if (list_cols[x][0][0:6] == "int[] "):
        # 先以]为分隔符,再奖第一个以[为分隔符,int类型转换得到结果
        for y_int in range(len(list_cols[x])):# 一行有几个变量
            temp = list_cols[x][y_int].split("[")
            len_temp_int = int(temp[-1].split("]")[0]) * int_len
            int_matrix_count += len_temp_int
    # long[] 类型 - 以[为分隔符    
    if (list_cols[x][0][0:7] == "long[] "):
        for y_long in range(len(list_cols[x])):# 一行有几个变量
            temp = list_cols[x][y_long].split("[")
            len_temp_long = int(temp[-1].split("]")[0]) * long_len
            long_matrix_count += len_temp_long
  
# 数据综合
sum_count = int_count+long_count+string_count+int_matrix_count+long_matrix_count
# 结果输出
GB = sum_count//1024//1024//1024
MB = sum_count//1024//1024%1024
KB = sum_count//1024%1024
B = sum_count%1024
if (GB != 0):
    print(GB,end="")
    print("GB",end="")
if (MB != 0):
    print(MB,end="")
    print("MB",end="")
if (KB != 0):
    print(KB,end="")
    print("KB",end="")
if (B != 0):
    print(B,end="")
    print("B",end="")


E题 近似 GCD ⏰

题目描述

小蓝有一个长度为 n 的数组 A = (a1, a2, · · · , an),数组的子数组被定义为从原数组中选出连续的一个或多个元素组成的数组。数组的最大公约数指的是数组中所有元素的最大公约数。如果最多更改数组中的一个元素之后,数组的最大公约数为 g,那么称 g 为这个数组的近似 GCD。一个数组的近似 GCD 可能有多种取值。

具体的,判断 g 是否为一个子数组的近似 GCD 如下:

  1. 如果这个子数组的最大公约数就是 g,那么说明 g 是其近似 GCD。
  2. 在修改这个子数组中的一个元素之后(可以改成想要的任何值),子数组的最大公约数为 g,那么说明 g 是这个子数组的近似 GCD。
    小蓝想知道,数组 A 有多少个长度大于等于 2 的子数组满足近似 GCD 的值为 g。

输入格式

输入的第一行包含两个整数 n, g,用一个空格分隔,分别表示数组 A 的长度和 g 的值。
第二行包含 n 个整数 a1, a2, · · · , an,相邻两个整数之间用一个空格分隔。

输出格式

输出一行包含一个整数表示数组 A 有多少个长度大于等于 2 的子数组的近似 GCD 的值为 g 。

样例输入

5 3
1 3 6 4 10

样例输出

5

提示

满足条件的子数组有 5 个:
[1, 3]:将 1 修改为 3 后,这个子数组的最大公约数为 3 ,满足条件。
[1, 3, 6]:将 1 修改为 3 后,这个子数组的最大公约数为 3 ,满足条件。
[3, 6]:这个子数组的最大公约数就是 3 ,满足条件。
[3, 6, 4]:将 4 修改为 3 后,这个子数组的最大公约数为 3 ,满足条件。
[6, 4]:将 4 修改为 3 后,这个子数组的最大公约数为 3,满足条件。
对于 20% 的评测用例,2 ≤ n ≤ 102;
对于 40% 的评测用例,2 ≤ n ≤ 103;
对于所有评测用例,2 ≤ n ≤ 105 ,1 ≤ g, ai ≤ 109。

cols,gcd = map(int,input().split())
second = input().split()
list_cols = [int(i) for i in second]
sum = 0   
    
for x in range(cols-1):
    list_temp = []
    list_temp.append(list_cols[x])
    # print(x)
    for y in range(x+1,cols):
        count = 0
        list_temp.append(list_cols[y])
        for k in list_temp:
            if (k%gcd == 0):
                count += 1
        if count >= len(list_temp)-1:
            sum += 1
    # print(list_temp)            
print(sum)

有关【蓝桥杯】第十三届蓝桥杯大赛软件赛决赛-Python大学B组【纯暴力解法记录】的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  3. ruby-on-rails - Rails 5 Active Record 记录无效错误 - 2

    我有两个Rails模型,即Invoice和Invoice_details。一个Invoice_details属于Invoice,一个Invoice有多个Invoice_details。我无法使用accepts_nested_attributes_forinInvoice通过Invoice模型保存Invoice_details。我收到以下错误:(0.2ms)BEGIN(0.2ms)ROLLBACKCompleted422UnprocessableEntityin25ms(ActiveRecord:4.0ms)ActiveRecord::RecordInvalid(Validationfa

  4. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  5. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  6. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  7. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

    我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

  8. 「Python|Selenium|场景案例」如何定位iframe中的元素? - 2

    本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决

  9. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  10. python ffmpeg 使用 pyav 转换 一组图像 到 视频 - 2

    2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p

随机推荐