蓝桥杯刷题 Day36 倒计时26天 纯练题的一天

2024-03-18 21:20

本文主要是介绍蓝桥杯刷题 Day36 倒计时26天 纯练题的一天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[蓝桥杯 2022 省 B] 积木画

题目描述

小明最近迷上了积木画,有这么两种类型的积木,分别为 I 型(大小为 2个单位面积) 和 L 型 (大小为 3 个单位面积):

同时,小明有一块面积大小为2×N 的画布,画布由2×N 个 1×1 区域构成。小明需要用以上两种积木将画布拼满,他想知道总共有多少种不同的方式? 积木可以任意旋转,且画布的方向固定。

输入格式

输入一个整数 N,表示画布大小。

输出格式

输出一个整数表示答案。由于答案可能很大,所以输出其对 10000000071000000007(即 10^9+7)取模后的值。

代码表示:

#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9+7,N = 1e7;
int main()
{int f[N]={0,1,2,5};int n;scanf("%d",&n);for(int i=4;i<=n;++i)f[i] = (2*f[i-1]%mod+f[i-3]%mod)%mod;printf("%d",f[n]);return 0;
}

解析:

这是一道动态规划的题,利用递归的思想,寻找对应的等式。


[蓝桥杯 2013 省 AB] 错误票据

题目描述

某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的 ID 号,全年所有票据的 ID 号是连续的,但 ID 的开始数码是随机选定的。因为工作人员疏忽,在录入 ID 号的时候发生了一处错误,造成了某个 ID 断号,另外一个 ID 重号。

你的任务是通过编程,找出断号的 ID 和重号的 ID。数据保证断号不可能发生在最大和最小号。

输入格式

一个整数N(N<100) 表示后面数据行数,接着读入 N 行数据,每行数据长度不等,是用空格分开的若干个(不大于 100 个)正整数(不大于 105),每个整数代表一个 ID 号。

输出格式

要求程序首先输入要求程序输出 1 行,含两个整数 m,n,用空格分隔,其中,m 表示断号 ID,n 表示重号 ID。

代码表示: 

#include <bits/stdc++.h>
using namespace std;
//l用于记录数组中的元素个数 
int a[10001],l;
int main()
{int N,m,n,i;string s;//存储每行输入的字符串 cin>>N;
//忽略掉换行符,以便后续可以使用 getline 函数读取完整的一行输入cin.ignore(numeric_limits<streamsize>::max(),'\n');for(i=1;i<=N;i++){getline(cin,s);//读取一行输入存储在字符串 s stringstream sin(s);//stringstream 可以将字符串当作流来处理便进行后续的分割while(sin>>a[++l]);// sin 中的每个整数依次读取并存储在数组 a//++l 用于递增计数器 l,确保每个整数都存储在不同的位置上}sort(a+1,a+l+1);//给出的整数可能是乱序的所以需要先排序 for(i=2;i<=l;i++)//循环遍历 if(a[i]==a[i+1]-2) m=a[i]+1;//相差为 2说明存在断号,存在变量m else if(a[i]==a[i+1]) n=a[i];//存在重号存在n cout<<m<<" "<<n;return 0;
} 

心得体会:

1、cin.ignore(numeric_limits<streamsize>::max(),'\n') 是一行代码,用于清除输入流中的换行符。cin 是 C++ 标准库中的输入流对象,ignore() 是 cin 对象的成员函数。ignore() 函数用于跳过输入流中的字符,可以指定要跳过的字符数和要跳过的特定字符。numeric_limits<streamsize>::max() 返回 streamsize 类型的最大值,表示要跳过的字符数为输入流中的最大字符数。这里使用 numeric_limits<streamsize>::max() 是为了确保跳过输入流中的所有字符。'\n' 是一个字符常量,表示换行符。ignore() 函数的第二个参数是要跳过的特定字符。

所以,cin.ignore(numeric_limits<streamsize>::max(),'\n') 的作用是跳过输入流中的所有字符,直到遇到换行符为止。这样可以确保在调用 getline() 函数之前,输入流中没有遗留的换行符影响。

2、使用 stringstream 的目的是将每行输入的字符串进行分割,提取其中的整数,并将这些整数存储到数组 a 中。这样做的好处是:

1)方便提取整数:stringstream 提供了诸如 operator>> 的操作符重载,可以方便地从流中提取数据。在这里,我们使用 sin >> a[++l] 从 sin 中提取下一个整数,并将其存储到数组 a 中。

2)处理不定数量的整数:每行输入的整数数量可能不确定,使用 stringstream 可以灵活地处理不定数量的整数,而不需要提前指定数组的大小。

3)方便类型转换:stringstream 可以自动将提取的字符串转换为相应的数据类型。在这里,我们将提取的字符串转换为整数,并将其存储到数组 a 中。


[蓝桥杯 2021 省 B2] 特殊年份

题目描述

今年是 2021 年,2021 这个数字非常特殊, 它的千位和十位相等, 个位比百位大 1,我们称满足这样条件的年份为特殊年份。

输入 5个年份,请计算这里面有多少个特殊年份。

输入格式

输入 5 行,每行一个 4 位十进制数(数值范围为1000 至 9999),表示一个年份。

输出格式

输出一个整数,表示输入的 5 个年份中有多少个特殊年份。

代码表示

#include <bits/stdc++.h>
using namespace std;int main() {int ans = 0;for (int i = 0; i < 5; i++) {string input;//char input[5];cin >> input;int a = input[0] - '0';int b = input[1] - '0';int c = input[2] - '0';int d = input[3] - '0';if (a == c && b + 1 == d)ans++;}cout << ans << endl;return 0;
}

心得体会

用字符类型的变量表示一个数字字符时实际上它们在内存中存储的是对应的ASCII码值。 '0'的ASCII码值是48当我们想将字符类型的数字转换为相应的整数时,可以通过减去字符 '0' 的ASCII码值来实现,字符类型的数字字符与对应的整数之间具有固定的差值,即字符 '0' 的ASCII码值是48,而整数 0 的值是0,它们之间相差了48。

比较char 和string:

1、字符数组:

1)使用下标操作符 []:可以通过索引访问字符数组中的每个字符。例如,charArray[0] 表示字符数组的第一个字符。

2)使用循环遍历:可以使用循环结构(如 for 循环或 while 循环)以递增索引的方式遍历字符数组,并逐个读取每个字符。

int main() {// 字符数组char charArray[] = "Hello";// 使用下标操作符读取每个字符for (int i = 0; charArray[i] != '\0'; i++) {cout << charArray[i] << " ";}cout << endl;// 使用循环遍历读取每个字符int index = 0;while (charArray[index] != '\0') {cout << charArray[index] << " ";index++;}cout << endl;}

2、字符串对象:

1)使用下标操作符 []:可以通过索引访问字符串对象中的每个字符。例如,str[0] 表示字符串对象的第一个字符。

2)使用循环遍历:可以使用范围-based for 循环或迭代器来遍历字符串对象,并逐个读取每个字符。

int main() {// 字符串对象string str = "Hello";// 使用下标操作符读取每个字符for (int i = 0; i < str.length(); i++) {cout << str[i] << " ";}cout << endl;// 使用范围-based for循环读取每个字符for (char ch : str) {cout << ch << " ";}cout << endl;// 使用迭代器读取每个字符for (string::iterator it = str.begin(); it != str.end(); ++it) {cout << *it << " ";}cout << endl;return 0;
}

[蓝桥杯 2021 省 AB2] 小平方

题目描述

小蓝发现,对于一个正整数 n 和一个小于 n 的正整数 v,将 v 平方后对 n 取余可能小于 n 的一半,也可能大于等于 n 的一半。请问,在 1 到 n−1 中, 有多少个数平方后除以 n 的余数小于 n 的一半

例如,当 n=4 时,1,2,3 的平方除以 4 的余数都小于 4的一半。

如,当 n=5 时, 1,4 的平方除以 5 的余数都是 1,小于 5 的一半。而 2,3 的平方除以 5 的余数都是 4, 大于等于 5 的一半。

输入格式

输入一行包含一个整数 n 。

输出格式

输出一个整数,表示满足条件的数的数量。

代码表示

#include <bits/stdc++.h>
using namespace std;int main() {int n,ann=0;cin>>n;for(int i=1;i<n;++i){if((i*i)%n<n*0.5) ann++;}cout<<ann;return 0;
}

[蓝桥杯 2022 省 B] 刷题统计

题目描述

小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题?

输入格式

输入一行包含三个整数 a,b 和 n.

输出格式

输出一个整数代表天数

代码表示

#include <bits/stdc++.h>
using namespace std;long long a,b,n; 
int main(){cin>>a>>b>>n;long long s=5*a+b*2; //一周做的题数long long s1=n%s; //还剩几题long long s2=n/s; //做了几周if(s1<=5*a){//如果工作日能完成if(s1%a==0){cout<<s1/a+s2*7;}else{cout<<s1/a+1+s2*7;}}else{ if((s1-5*a)>b){cout<<s2*7+7;}else {cout<<s2*7+6;}}return 0;
}

心得体会:

活用除号➗和取余%,整在的一个星期可以独立出来计算。

注意文章在最后提示了数据非常的大所以要用long long类型。

这篇关于蓝桥杯刷题 Day36 倒计时26天 纯练题的一天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/823696

相关文章

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

【多系统萎缩患者必看】✨维生素补充全攻略,守护你的健康每一天!

亲爱的朋友们,今天我们要聊一个既重要又容易被忽视的话题——‌多系统萎缩患者如何科学补充维生素‌!🌟 在这个快节奏的生活中,健康成为了我们最宝贵的财富,而对于多系统萎缩(MSA)的患者来说,合理的营养补充更是维护身体机能、提升生活质量的关键一步。👇 🌈 为什么多系统萎缩患者需要特别关注维生素? 多系统萎缩是一种罕见且复杂的神经系统疾病,它影响身体的多个系统,包括自主神经、锥体外系、小脑及锥

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

2024年AMC10美国数学竞赛倒计时两个月:吃透1250道真题和知识点(持续)

根据通知,2024年AMC10美国数学竞赛的报名还有两周,正式比赛还有两个月就要开始了。计划参赛的孩子们要记好时间,认真备考,最后冲刺再提高成绩。 那么如何备考2024年AMC10美国数学竞赛呢?做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。

用Python编写倒计时程序:详细教程

目录 引言 环境准备 基本概念 代码实现 步骤一:导入必要的库 步骤二:获取用户输入 步骤三:实现倒计时逻辑 步骤四:整合代码 运行程序 高级功能 扩展功能示例:支持分钟和小时输入 扩展功能示例:图形用户界面 (GUI) 总结 引言 倒计时程序是一个非常常见的小工具,广泛用于各种应用场景中,例如考试时间提醒、烹饪计时器、会议倒计时等。Python 作为一种

找不同-第15届蓝桥省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。 第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下: 猪八戒落地 游乐场 画西瓜 找不同 消

每日一题~cf 970 div3 (A思维,B小模拟,C二分,D排列数建图成环,E 26个字母暴力+前缀和,F 逆元,G 数论gcd )

A 题意: 有 a 个1 ,b 个2.问是否能将这些数划分为两个数值相等的集合。 输出 YES 或者 NO —————— 问题等价于 将数组 分成两个数值相同的数组。所以sum 应该是偶数。也就是说 1 的个数是偶数。在i1的个数是偶数的情况下,将 2 分成两份,如果2 的个数是偶数,OK。如果是奇数那么需要1来补齐,如果1 的个数大于等于2那么可以补齐。(1 的个数是偶数,需要2个1来补齐,剩下

【蓝桥杯嵌入式(一)程序框架和调度器】

蓝桥杯嵌入式(一)程序框架和调度器 序、代码命名规则零、STM32和8051⼀、软件及环境安装⼆、⼯程框架搭建1.时钟配置2、SYS配置3、⼯程配置4、NVIC配置5.、Keil配置 三、系统初始化四、任务调度器 链接: 视频出处 序、代码命名规则 以下是一些常见的举例 零、STM32和8051 链接: 8位和32位单片机最本质区别 ⼀、软件及环境安装

26 页高清大数据开发代码速查表,提升效率必备!【可下载】

各大互联网公司高价抢夺数据人才,为谋求长期发展、获得高薪,很多人转行到了大数据领域。这条路人才虽缺,但要成为优秀大数据工程师并不轻松:别的不说,光学习新技术,巩固旧知识,就需要耗费大量时间精力,实属不易。 为帮助大家提高学习效率,方便日后查找和使用,这里整理了一份大数据开发代码速查表资料,内容包括 Spark、Hadoop 及 Hive 等大数据开发主要知识点。 由于篇幅原因,下面只展示了速查表

【蓝桥杯嵌入式(二)Led、Key、Lcd】

蓝桥杯嵌入式(二)Led、Key、Lcd 五、Led模块1.原理图配置2. 知识点3.底层代码 六、Key模块1.原理图配置2.知识点3.底层代码底层代码(四⾏代码版本)底层代码(状态机版本) 七、LCD模块1.原理图配置2.知识点底层代码 五、Led模块 1.原理图配置 2. 知识点 链接: 上拉电阻的通俗解释 链接: 单⽚机怎么输出⾼电平!推挽输出和开