2024蓝桥杯每日一题(递归)

news2024/11/18 17:31:34

备战2024年蓝桥杯 -- 每日一题
Python大学A组

        试题一:有序分数
        试题二:正则问题
        试题三:带分数
        试题四:约数之和
        试题五:分形之城


试题一:有序分数

【题目描述】

 【输入格式】

        共一行,包含一个整数 N。

【输出格式】

        按照从小到大的顺序,输出所有满足条件的分数。

        每个分数占一行,格式为 a/b,其中 a为分子, b 为分母。

【数据范围】

        1≤N≤160

【输入样例】

5

【输出样例】

0/1
1/5
1/4
1/3
2/5
1/2
3/5
2/3
3/4
4/5
1/1

 【解题思路】

        可以采取最简单直接的方法,直接枚举出所有分数,需要用到gcd(a,b)进行约分。然后去重接着排序即可。

【Python程序代码】

from math import *
n = int(input())
tep = set()
for i in range(1,n+1):
    for j in range(1,i+1):
        k = gcd(i,j)
        ii,jj = i//k,j//k
        tep.add( (jj/ii,jj,ii) )
tep = list(tep)
tep.sort()
print('0/1')
for i in range(len(tep)):
    print( '%d/%d'%(tep[i][1],tep[i][2]) )

试题二:正则问题

【题目描述】

        考虑一种简单的正则表达式:只由 x ( ) | 组成的正则表达式。小明想求出这个正则表达式能接受的最长字符串的长度。例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是: xxxxxx,长度是6。

【输入格式】

        一个由x()|组成的正则表达式。

【输出格式】

        输出所给正则表达式能接受的最长字符串的长度。

【数据范围】

        输入长度不超过100,保证合法。

【输入样例】

((xx|xxx)x|(x|xx))xx 

【输出样例】

6

【解题思路】

        采用递归回溯的方法,首先建立两条规则:
        规则1:() 的意思是有括号的先算括号里面的,优先级最高,把括号计算的结果在和括号外的字符拼接,即括号是相对独立,完整的个体
        规则2:|的意思是|这个符号两侧的字符串只能选其中一个,由于这题要求能拼接的字符串最长,因此应该选择字符|字符串xxx...长度较大的一侧
        比如样例中的字符串((xx|xxx)x|(x|xx))xx对应的递归搜索树如下:

【Python程序代码】

s = input()
k = 0
def dfs():
    global k
    res = 0
    while k<len(s):
        if s[k]=='(':
            k += 1
            res += dfs()
            k += 1
        elif s[k]=='|':
            k += 1
            res = max(res, dfs())
        elif s[k]==')':
            break
        elif s[k]=='x':
            k += 1
            res += 1
        else:break
    return res
print(dfs())

试题三:带分数

【题目描述】

【输入格式】

        一个正整数。

【输出格式】

        输出输入数字用数码 1∼9不重复不遗漏地组成带分数表示的全部种数。

【数据范围】

        1≤N<1000000

【输入样例】

100

【输出样例】

11

【解题思路】

        可以考虑采用Python的permuttations的Api函数,然后枚举两个隔板将排列切分成三个数后进行判断。可以再采取一定的剪枝加速。

【Python程序代码】

from itertools import *
x = int(input())
a = ['1','2','3','4','5','6','7','8','9']
res = 0
for pl in permutations(a,9):
    tep = list(pl)
    tep = "".join(tep)
    for i in range(1,8):
        if int(tep[:i])>=x:break
        for j in range(i+1,9):
            a1 = int(tep[:i])
            a2 = int(tep[i:j])
            a3 = int(tep[j:])
            if a2%a3==0 and a2//a3==x-a1:res+=1

print(res)

试题四:约数之和

【题目描述】

【输入格式】

        在一行中输入用空格隔开的两个整数 A 和 B。

【输出格式】

        输出一个整数,代表 S mod 9901的值。

【数据范围】

        0≤A,B≤5×10000000

【输入样例】

2 3

【输出样例】

15

【解题思路】

        首先得明确这题到底需要干什么:

【Python程序代码】

a,b = map(int,input().split())
res = 1
mod = 9901
def summ(p,k):
    if k==1:return 1
    elif k%2==0:return (pow(p,k//2,mod) + 1)*(summ(p,k//2))%mod
    else:return ( summ(p,k-1) + pow(p,k-1,mod) )%mod
i = 2
while i*i<=a:
    if a%i==0:
        c = 0
        while a%i==0:
            c += 1
            a//=i
        res = res*( summ(i,c*b+1) )%mod
    i += 1
if a>1:
    res = res * (summ(a, b+1)) % mod
elif a==0:
    res = 0
print(res)

试题五:分形之城

【题目描述】

        城市的规划在城市建设中是个大问题。不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的问题就开始显现。而这座名为 Fractal 的城市设想了这样的一个规划方案,如下图所示:

        当城区规模扩大之后,Fractal 的解决方案是把和原来城区结构一样的区域按照图中的方式建设在城市周围,提升城市的等级。对于任意等级的城市,我们把正方形街区从左上角开始按照道路标号。虽然这个方案很烂,Fractal 规划部门的人员还是想知道,如果城市发展到了等级 N,编号为 A 和 B的两个街区的直线距离是多少。街区的距离指的是街区的中心点之间的距离,每个街区都是边长为 10米的正方形。

【输入格式】

        第一行输入正整数 n,表示测试数据的数目。
        以下 n行,输入 n组测试数据,每组一行。
        每组数据包括三个整数 N,A,B表示城市等级以及两个街区的编号,整数之间用空格隔开。

【输出格式】

        一共输出 n行数据,每行对应一组测试数据的输出结果,结果四舍五入到整数。

【数据范围】

        1≤N≤31,
        1≤A,B≤2^(2n),
        1≤n≤1000

【输入样例】

3 
1 1 2 
2 16 1 
3 4 33 

【输出样例】

10 
30 
50 

 【解题思路】

        具体思路参考:思路
        数学知识:
        - 对于点 (x, y) ,沿原点顺时针旋转 90° ,将变为 (y, -x)
        - 对于点 (x, y) ,沿原点逆时针旋转 90° ,将变为 (-y, x)
        - 对于点 (x, y) ,以 y 轴为对称轴翻转将变为 (-x, y)

【Python程序代码】

from math import *
n = int(input())
def calc(n,m):
    if n==0:return [0,0]
    le = 1 << (n-1)
    cnt = 1<< (2*n-2)
    pos = calc(n-1, m%cnt)
    x,y = pos
    z = m//cnt
    if z==0:return [-y-le,-x+le]
    elif z==1:return [x+le,y+le]
    elif z==2:return [x+le,y-le]
    return [y-le,x-le]
def work(x,y):
    return (5*((x[0]-y[0])**2 + (x[1]-y[1])**2)**0.5)
for i in range(n):
    n,a,b = map(int,input().split())
    pos1 = calc(n,a-1)
    pos2 = calc(n,b-1)
    print(round(work(pos1,pos2)))

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

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

相关文章

【sequence进阶 config_db message_2024.03.14】

sequence进阶 sequence的仲裁 多个sequence发送给一个sequencer的情况&#xff0c;使用的两种方式&#xff1a; class virtual_seqence extends uvm_sequence;virtual task body();sub_sequene seq_0;sub_sequene seq_1;//第一种方式p_sequencer.apb_mst_sqr.set_arbitratio…

计算机一级word 文字处理理论+实操试题

计算机一级word 文字处理理论实操试题 单选题&#xff1a; 1、在Word编辑状态下&#xff0c;要将另一文档的内容全部添加在当前文档的当前光标处&#xff0c;应选择的操作是依次单击______。 A.“文件”选项卡和“打开”项 B.“文件”选项卡和“新建”项 C.“插入”选项卡…

智能硬件 | XR头显市场只有少数玩家,AI是扭转局面的关键?

苹果头显设备Vision Pro突出2项技术&#xff0c;即“空间计算”和手部、眼部跟踪。“空间计算”使设备能够学习并与物理环境进行交互&#xff1b;手部和眼部跟踪功能通过从设备侧面、前置和底部安装的摄像头收集手部和眼球的感应数据&#xff0c;使用户能够操作虚拟环境并与之交…

QT插件简单使用2

目录 1 总的目录结构 2 主程序 3 插件程序 4 运行结果 相比原来的QT插件简单使用-CSDN博客增加了 QObject *create(const QString &name, const QString &spec) override; 函数的使用和Plugin.json的使用 1 总的目录结构 编译器mingw-64 2 主程序 1 新建一个其他…

和解费用3362万美元,谁来守护跨境卖家的“钱包”

公司向原告支付3362万美元(包括原告方主张的损害赔偿金2500万美元及原告方支付的律师费用862万美元)&#xff1b; 公司不得通过任何方式访问或使用原告的产品或数据&#xff1b; 公司不得向最终用户提供维修帮助服务(属于公司汽车诊断产品中的辅助维 修功能&#xff0c;不影响…

【代码】提取图像轮廓坐标并保存为YOLOv8所需的txt格式

该段代码的应用场景为对图像标注过后&#xff0c;想要对图像进行裁切&#xff0c;但是标签不能裁切&#xff0c;所以将原图像按照标签进行二值化后&#xff0c;将二值化后的图像进行裁切&#xff0c;然后使用opencv对裁切后的图像进行处理&#xff0c;识别出白色区域轮廓&#…

从零开始学习数据结构与算法:Python实现【第139篇—Python实现】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 从零开始学习数据结构与算法&#xff1a;Python实现 数据结构与算法是计算机科学中至关重要…

FDA: 用于语义分割的傅里叶域自适应

论文链接&#xff1a;https://arxiv.org/abs/2004.05498 代码链接&#xff1a;GitHub - YanchaoYang/FDA: Fourier Domain Adaptation for Semantic Segmentation 机构&#xff1a;UCLA 发表于2020CVPR 这篇文章别的地方略读了&#xff0c;主要看看方法&#xff0c;感兴趣自…

基于Spring Boot的四川火锅文化网站的设计与实现

摘 要 四川火锅文化网站的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品&#xff0c;体验高科技时代带给人们的方便&#xff0c;同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓&#xff0c;iOS相比较起来&…

基于SpringBoot+MYSQL的课程作业管理系统

目录 1、前言介绍 2、主要技术 3、系统流程分析 3.1、操作流程 3.2、添加信息流程 3.3、删除信息流程 4、系统设计 5、数据库设计 6、数据表 6、运行截图(部分) 6.1、管理员功能模块 6.2、教师功能模块 7、源码获取 基于springboot的课程作业管理系统 1、前言介绍 …

代码随想录算法训练营第47天 | 198.打家劫舍,213.打家劫舍II,337.打家劫舍 III

动态规划章节理论基础&#xff1a; https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 198.打家劫舍 题目链接&#xff1a;https://leetcode.cn/problems/last-stone-weight-ii/ 思路&#xff1a; 当前房屋偷与…

Vue+OpenLayers7入门到实战:OpenLayers7创建自定义鹰眼控件,自定义鹰眼控件样式,调整鹰眼控件位置、大小、文字和按钮等样式

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上创建自定义鹰眼控件,自定义鹰眼控件样式,调整鹰眼控件位置、大小、文字和按钮等样式。 二、依赖和使用 "ol": "7.5.2"使用npm安装依赖npm inst…

RP2040 VSCode C/C++开发环境快速部署

RP2040 VSCode C/C开发环境快速部署 &#x1f4cc;安装参考《树莓派(Raspberry Pi) Pico VSCode C/C开发环境配置(无需Visual Studio)》&#x1f4cd;Windows环境下 MSYS2一键式部署pico程序包&#xff0c;下载地址&#xff1a;https://github.com/raspberrypi/pico-setup-wind…

以太坊开发学习-solidity(二)值类型

文章目录 第一个Solidity程序编译并部署代码变量值类型1. 布尔型2. 整型3. 地址类型4. 定长字节数组 第一个Solidity程序 开发工具&#xff1a;remix 本教程中&#xff0c;我会用remix来跑solidity合约。remix是以太坊官方推荐的智能合约开发IDE&#xff08;集成开发环境&#…

Windows系统搭建web网站并结合内网穿透实现公网访问本地站点

文章目录 使用工具1. 本地搭建web网站1.1 下载phpstudy后解压并安装1.2 打开默认站点&#xff0c;测试1.3 下载静态演示站点1.4 打开站点根目录1.5 复制演示站点到站网根目录1.6 在浏览器中&#xff0c;查看演示效果。 2. 将本地web网站发布到公网2.1 安装cpolar内网穿透2.2 映…

阿里云服务器选哪个地域比较好?考虑因素4点分享

阿里云服务器地域选择方法&#xff0c;如何选择速度更快、网络延迟更低的地域节点&#xff0c;地域指云服务器所在的地理位置区域&#xff0c;地域以城市划分&#xff0c;如北京、杭州、深圳及上海等&#xff0c;如何选择地域&#xff1f;建议根据用户所在地区就近选择地域&…

【学习学习】学习金字塔

学习金字塔&#xff08;Cone of Learning&#xff09;&#xff0c;全称学习吸收率金字塔&#xff0c;是一种现代学习方式的理论。网上流传它是美国缅因州的国家训练实验室&#xff08;National Training Laboratories&#xff09;研究成果&#xff0c;用数字形式形象显示了采用…

【机器学习】详细解析Sklearn中的StandardScaler---原理、应用、源码与注意事项

【机器学习】详细解析Sklearn中的StandardScaler—原理、应用、源码与注意事项 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x…

JetBrains全家桶激活,分享PyCharm 2024 激活的方案

大家好&#xff0c;欢迎来到金榜探云手&#xff01; PyCharm 公司简介 JetBrains 是一家专注于开发工具的软件公司&#xff0c;总部位于捷克。他们以提供强大的集成开发环境&#xff08;IDE&#xff09;而闻名&#xff0c;如 IntelliJ IDEA、PyCharm、和 WebStorm等。这些工具…

【晴问算法】入门篇—贪心算法—区间选点问题

题目描述 给定n个闭区间&#xff0c;问最少需要确定多少个点&#xff0c;才能使每个闭区间中都至少存在一个点。 输入描述 输出描述 输出一个整数&#xff0c;表示最少需要确定的点的个数。 样例1输入 3 1 4 2 6 5 7输出 2 解释 至少需要两个点&#xff08;例如3和5&#xff…