这里是同年省赛的真题 2022年4月第十三届蓝桥杯省赛C组C语言/C++真题及答案
感想写在前面,
备考广东专升本很久了,我的成绩是计算机类省排位299,广东专升本2022年比往年残酷了不少,近几年竞争增长比考研还要夸张很多,计算机类三万名考生里考进省前三百名才有公办本科读。
今年的蓝桥杯省赛是在升本考试前想着放松一下来参加的,蓝桥杯国赛是升本考试后疯狂放松的时候参加的,这真的不是我的水平哈哈哈,属于生锈很久了,第BDF题没做,时间不够了
近半年以来我几乎只敲过蓝桥杯省赛和国赛的这几题代码,可以说是裸考中的裸考了,c++不熟悉了,保险起见大部分题目都是纯C敲的
有幸帮到你的话点个赞谢谢哈~
题目
第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组
试题 A: 斐波那契与 7
本题总分:5 分 【问题描述】 斐波那契数列的递推公式为:Fn = Fnn1 + Fnn2,其中 F1 = F2 = 1。 请问,斐波那契数列的第 1 至 202202011200 项(含)中,有多少项的个位 是 7。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。 试题 A: 斐波那契与 7 2 第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组
试题 B: 小蓝做实验
本题总分:5 分 【问题描述】 小蓝很喜欢科研,他最近做了一个实验得到了一批实验数据,一共是两百 万个正整数。如果按照预期,所有的实验数据 x 都应该满足 107 ≤ x ≤ 108。但 是做实验都会有一些误差,会导致出现一些预期外的数据,这种误差数据 y 的 范围是 103 ≤ y ≤ 1012 。由于小蓝做实验很可靠,所以他所有的实验数据中 99.99% 以上都是符合预期的。小蓝的所有实验数据都在 primes.txt 中,现 在他想统计这两百万个正整数中有多少个是质数,你能告诉他吗? 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。 试题 B: 小蓝做实验 3 第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组
试题 C: 取模
时间限制: 1.0s 内存限制: 256.0MB 本题总分:10 分 【问题描述】 给定 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 【评测用例规模与约定】 对于 20% 的评测用例,T ≤ 100 ,n, m ≤ 1000; 试题 C: 取模 4 第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组 对于 50% 的评测用例,T ≤ 10000 ,n, m ≤ 105; 对于所有评测用例,1 ≤ T ≤ 105 ,1 ≤ n ≤ 109 ,2 ≤ m ≤ 109。 试题 C: 取模 5 第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组
试题 D: 内存空间
时间限制: 1.0s 内存限制: 256.0MB 本题总分:10 分 【问题描述】 小蓝最近总喜欢计算自己的代码中定义的变量占用了多少内存空间。 为了简化问题,变量的类型只有以下三种: 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 试题 D: 内存空间 6 第十三届蓝桥杯大赛软件赛决赛C/C++大学C组 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】 1 long[] nums=new long[131072]; 【样例输出 1】 1MB 【样例输入 2】 4 int a=0,b=0; long x=0,y=0; String s1=”hello”,s2=”world”; 试题D: 内存空间 7 第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组 long[] arr1=new long[100000],arr2=new long[100000]; 【样例输出 2】 1MB538KB546B 【样例说明】 样例 1,占用的空间为 131072 × 8 = 1048576 B,换算过后正好是 1MB,其 它三个单位 GB、KB、B 前面的数字都为 0 ,所以不用输出。 样例 2,占用的空间为 4 × 2 + 8 × 2 + 10 + 8 × 100000 × 2 B,换算后是 1MB538KB546B。 【评测用例规模与约定】 对于所有评测用例,1 ≤ T ≤ 10,每条变量定义语句的长度不会超过 1000 。所有的变量名称长度不会超过 10,且都由小写字母和数字组成。对于整型变 量,初始化的值均是在其表示范围内的十进制整数,初始化的值不会是变量。 对于 String 类型的变量,初始化的内容长度不会超过 50,且内容仅包含小写 字母和数字,初始化的值不会是变量。对于数组类型变量,数组的长度为一个 整数,范围为:[0, 2 30],数组的长度不会是变量。T 条语句定义的变量所占的内 存空间总大小不会超过 1 GB,且大于 0 B。 试题 D: 内存空间 8 第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组 试题 E: 斐波那契数组 时间限制: 1.0s 内存限制: 256.0MB 本题总分:15 分 【问题描述】 如果数组 A = (a0, a1, · · · , ann 1) 满足以下条件,就说它是一个斐波那契数 组:
- n ≥ 2;
- a0 = a1;
- 对于所有的 i(i ≥ 2),都满足 ai = aii 1 + aii 2。
现在,给出一个数组 A ,你可以执行任意次修改,每次修改将数组中的某 个位置的元素修改为一个大于 0 的整数。请问最少修改几个元素之后,数组 A 会变成一个斐波那契数组。 【输入格式】 输入的第一行包含一个整数 n ,表示数组 A 中的元素个数。 第二行包含 n 个整数 a0, a1, · · · , ann 1,相邻两个整数之间用一个空格分隔。 【输出格式】 输出一行包含一个整数表示最少需要修改数组 A 中的几个元素之后,数组 A 可以变为一个斐波那契数组。 【样例输入】 5 1 2 2 4 8 【样例输出】 3
试题 E: 斐波那契数组 9
第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组 【样例说明】 将原数组修改为 (1, 1, 2, 3, 5),最少修改三个元素变成了一个斐波那契数组。 【评测用例规模与约定】 对于所有评测用例,2 ≤ n ≤ 105 ,1 ≤ ai ≤ 106。 试题 E: 斐波那契数组 10 第十三届蓝桥杯大赛软件赛决赛C/C++大学C组 试题 F: 近似 GCD 时间限制: 1.0s 内存限制: 256.0MB 本题总分:15 分 【问题描述】 小蓝有一个长度为 n 的数组 A = (a1, a2, · · · , an),数组的子数组被定义为从 原数组中选出连续的一个或多个元素组成的数组。数组的最大公约数指的是数 组中所有元素的最大公约数。如果最多更改数组中的一个元素之后,数组的最 大公约数为 g,那么称 g 为这个数组的近似 GCD。一个数组的近似 GCD 可能 有多种取值。 具体的,判断 g 是否为一个子数组的近似 GCD 如下:
- 如果这个子数组的最大公约数就是 g,那么说明 g 是其近似 GCD。
- 在修改这个子数组中的一个元素之后(可以改成想要的任何值),子数
组的最大公约数为 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
试题F: 近似GCD 11
第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组 【样例输出】 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。 试题 F: 近似 GCD 12 第十三届蓝桥杯大赛软件赛决赛C/C++大学C组 试题 G: 数组个数 时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分 【问题描述】 小蓝有一个长度为 n 的数组 B = (b0, b1, · · · , bnn1),数组 B 是由另一个长度 为 n 的环形数组 A = (a0, a1, · · · , ann1) 经过一次相邻最大化操作得到的,其中 ai 与 ai+1 相邻,a0 与 ann1 相邻。 形式化描述为: bi = ??????????????????? max(an?1, a0, a1), (i = 0); max(ai?1, ai, ai+1), (0 < i < n ? 1); max(an?2, an?1, a0), (i = n ? 1). 小蓝想知道,可能有多少个满足条件的数组 A,经过一次相邻最大化操作 后能得到数组 B,注意 A 中的每个元素都要求为非负整数。 【输入格式】 输入的第一行包含一个整数 n ,表示数组长度。 第二行包含 n 个整数 b0, b1, · · · , bnn1,相邻两个整数之间用一个空格分隔。 【输出格式】 输出一行包含一个整数表示答案,答案可能很大,请输出答案除以 1000000007 后的余数。 【样例输入】 5 8 6 1 8 8
试题G: 数组个数 13
第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组 【样例输出】 7 【样例说明】 可能的 A 数组有 7 个:(6, 0, 0, 1, 8)、(6, 0, 1, 0, 8)、(6, 0, 1, 1, 8)、(6, 1, 0, 0, 8)、 (6, 1, 0, 1, 8)、(6, 1, 1, 0, 8)、(6, 1, 1, 1, 8) 。 【评测用例规模与约定】 对于 30% 的评测用例,3 ≤ n ≤ 10; 对于 60% 的评测用例,3 ≤ n ≤ 100; 对于所有评测用例,3 ≤ n ≤ 1000 ,0 ≤ bi ≤ 10。 试题 G: 数组个数 14 第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组 试题 H: 六六大顺 时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分 【问题描述】 六六大顺,本指农历六月初六。多用于祝福中年人士家庭幸福,工作顺利, 事业有成,身体健康。源自《左传》“君义,臣行,父慈,子孝,兄爱,弟敬, 此数者累谓六顺也。” 6 在我国自古以来是一个吉祥的数字,定义数列 A = (a1, a2, · · · , ai, · · ·) , 其中 a1 = 6 , a2 = 66 , · · · , ai = 10 · aii 1 + 6。 定义一个数列 B = (b1, b2, · · · , bi, · · ·),其中 b1 = 6 × 6, b2 = 66 × 66, · · · , bi = ai · ai。 现在小蓝想知道数列 B 的前 n 项的和是多少,你能帮帮小蓝吗? 【输入格式】 输入一行包含一个正整数 n 。 【输出格式】 输出一行包含一个整数表示数列 B 前 n 项的和。 【样例输入】 3 【样例输出】 447948 【样例说明】 b1 = 6 × 6 = 36, b2 = 66 × 66 = 4356, b3 = 666 × 666 = 443556,所以前三项 的和为 36 + 4356 + 443556 = 447948 。 试题 H: 六六大顺 15 第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组 【评测用例规模与约定】 对于 20% 的评测用例,1 ≤ n ≤ 100; 对于 50% 的评测用例,1 ≤ n ≤ 100000; 对于所有评测用例,1 ≤ n ≤ 10000000 。
试题 H: 六六大顺 16
第十三届蓝桥杯大赛软件赛决赛C/C++大学C组 试题 I: 打折 时间限制: 2.0s 内存限制: 256.0MB 本题总分:25 分 【问题描述】 小蓝打算采购 n 种物品,每种物品各需要 1 个。 小蓝所住的位置附近一共有 m 个店铺,每个店铺都出售着各种各样的物 品。 第 i 家店铺会在第 si 天至第 ti 天打折,折扣率为 pi,对于原件为 b 的物 品,折后价格为 ? b·pj 100 ? 。其它时间需按原价购买。 小蓝很忙,他只能选择一天的时间去采购这些物品。请问,他最少需要花 多少钱才能买到需要的所有物品。 题目保证小蓝一定能买到需要的所有物品。 【输入格式】 输入的第一行包含两个整数 n, m,用一个空格分隔,分别表示物品的个数 和店铺的个数。 接下来依次包含每个店铺的描述。每个店铺由若干行组成,其中第一行包 含四个整数 si, ti, pi, ci,相邻两个整数之间用一个空格分隔,分别表示商店优惠 的起始和结束时间、折扣率以及商店内的商品总数。之后接 ci 行,每行包含两 个整数 aj, bj ,用一个空格分隔,分别表示该商店的第 j 个商品的类型和价格。 商品的类型由 1 至 n 编号。 【输出格式】 输出一行包含一个整数表示小蓝需要花费的最少的钱数。 【样例输入】 2 2 1 2 89 1
试题I: 打折 17
第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组 1 97 3 4 77 1 2 15 【样例输出】 101 【评测用例规模与约定】 对于 40% 的评测用例,n, m ≤ 500 ,si ≤ ti ≤ 100 ,∑ ci ≤ 2000 ; 对于 70% 的评测用例,n, m ≤ 5000 ,∑ ci ≤ 20000 ; 对于所有评测用例,1 ≤ n, m ≤ 100000 ,1 ≤ ci ≤ n , 1 ≤ si ≤ ti ≤ 109 ,1 < pi < 100 ,1 ≤ aj ≤ n ,1 ≤ bj ≤ 109 。 ∑ ci ≤ 400000 , 试题 I: 打折 18 第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组
试题 J: 替换字符
时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分 【问题描述】 给定一个仅含小写英文字母的字符串 s,每次操作选择一个区间 [li,ri] 将 s 的该区间中的所有字母 xi 全部替换成字母 yi,问所有操作做完后,得到的字符 串是什么。 【输入格式】 输入的第一行包含一个字符串 s 。 第二行包含一个整数 m 。 接下来 m 行,每行包含 4 个参数 li,ri, xi, yi,相邻两个参数之间用一个空格 分隔,其中 li,ri 为整数,xi, yi 为小写字母。 【输出格式】 输出一行包含一个字符串表示答案。 【样例输入】 abcaaea 4 1 7 c e 3 3 e b 3 6 b e 1 4 a c 【样例输出】 cbecaea 试题 J: 替换字符 19 第十三届蓝桥杯大赛软件赛决赛 C/C++ 大学 C 组 【评测用例规模与约定】 对于 40% 的评测用例,|s|, m ≤ 5000; 对于所有评测用例,1 ≤ |s|, m ≤ 105 ,1 ≤ li ≤ ri ≤ |s| ,xi , yi ,其中 |s| 表 示字符串 s 的长度。
答案
并非官方答案,都是博主比赛时的答案,非绝对正确,仅供参考
A题答案
看我第一题乱七八糟的code就可以知道我比赛刚开始我有多绝望了吧,后来甚至是手算出来的, 一开始是写程序求个位数,等于7的话就count++,但是看到这么大的问题复杂度感觉不对劲啊,想着程序跑跑看,一边run一边做后面的题结果跑了20分钟还没跑出来 就意识到问题的严重了,后悔刚开始没多手算几个数,后面还想了十几分钟怎么优化,之后才发现从第13个数开始就有规律了,个位数全都是0 7 0 7 0 7 0这样子了
#include <bits/stdc++.h>
using namespace std;
int ans=0;
int coun=2;
int main()
{
long long ans = (202202011200-13)/2;
202202011187
101101005593
101101005594
printf("%lld",ans);
return 0;
}
B题答案
B题博主没做,但是想吐槽一下哈哈。 第一题我就卡了半个多钟,已经心态崩了好吧,看到第二题涉及到概率问题果断跳过了,毕竟才5分,到最后基本所有题都做了还是对这5分没兴趣。
C题答案
这题我的时间复杂度应该是不合格的,只是想拿部分分,后面还有很多题,就速度过了
#include <bits/stdc++.h>
using namespace std;
int ans[100010];
int main()
{
int T,i;
scanf("%d",&T);
for(i=0;i<T;i++)
{
int n,m,x,y,ok=0;
scanf("%d %d",&n,&m);
for(x=1;x<m;x++)
{
for(y=x+1;y<=m;y++)
{
if(n%x==n%y)
ok=1;
if(ok)
break;
}
if(ok)
break;
}
if(ok)
ans[i]=1;
else
ans[i]=0;
}
for(i=0;i<T;i++)
{
if(ans[i])
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
D题答案
D题我当时也直接放了,字符处理的题从来不会让你快速解出来,考csp的时候题目少还会考虑一下,蓝桥杯动不动就十道题比的就是速度。
E题答案
博主思路:每道题水一点分哈哈哈哈哈 这道题不知道能不能混一两个案例,只是把开头的两个数的三种情况列举了出来,其它完全没考虑了,没思路,怎么想复杂度都很高
#include <bits/stdc++.h>
using namespace std;
int arr[100000];
int main()
{
int n,i;
int this_ans = 0;
int ans = 0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
if(arr[0]==arr[1])
{
int a=arr[0],b=arr[1],tmp;
for(i=2;i<n;i++)
{
tmp = a;
a = b;
b = tmp+b;
if(b!=arr[i])
ans++;
}
}else
{
int a=arr[0],b=arr[0],tmp;
ans++;
for(i=2;i<n;i++)
{
tmp = a;
a = b;
b = tmp+b;
if(b!=arr[i])
ans++;
}
a=arr[1],b=arr[1];
this_ans = 0;
for(i=2;i<n;i++)
{
tmp = a;
a = b;
b = tmp+b;
if(b!=arr[i])
this_ans++;
}
if(this_ans<ans)
ans = this_ans;
}
printf("%d",ans);
return 0;
}
F题答案
大概看了一下题,理不清思路,关键是公约数忘了怎么求,只好放弃了
G题答案
希望寄托于这题了, 考的基本的深度和裁枝
#include <bits/stdc++.h>
using namespace std;
int arrB[1010];
int arrA[1010]={0};
int ans=0,n;
int mymax(int a,int b,int c)
{
if(a>=b&&a>=c)
return a;
else if(b>=a&&b>=c)
return b;
else
return c;
}
int DFS(int id)
{
int i,j;
for(i=0;i<=10;i++)
{
arrA[id]= i;
if(id>1)
{
j=id-1;
if(arrB[j]!=mymax(arrA[j-1],arrA[j],arrA[j+1]))
continue;
}
if(id==n-1)
{
int ok=1;
if(arrB[0]!=mymax(arrA[n-1],arrA[0],arrA[1]))
{
ok=0;
continue;
}
if(arrB[n-1]!=mymax(arrA[n-2],arrA[n-1],arrA[n]))
{
ok=0;
continue;
}
if(ok)
{
ans++;
ans=ans%1000000007;
}
}else
{
DFS(id+1);
}
}
}
int main()
{
int i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&arrB[i]);
}
DFS(0);
printf("%d",ans);
return 0;
}
H题答案
水分水分
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,i,j,value=6,ans=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
ans+=value*value;
value = value*10+6;
}
printf("%d",ans);
return 0;
}
I题答案
这题是最后才做的,还没敲完就比赛结束了,轮廓都敲出来了,虽然运行不了,但是放出来看一下吧
#include <bits/stdc++.h>
using namespace std;
int cost[100];
int zhong[100][100000]={0};
int zhongMoney[100];
int main()
{
int n,m,i,j;
scanf("%d %d",&n,&m);
for(i=0;i<m;i++)
{
int s,t,p,c;
scanf("%d %d %d %d",&s,&t,&p,&c);
for(j=0;j<c;j++)
{
int a,b,k;
scanf("%d %d",&a,&b);
for(k=0;k<100;k++)
{
int tmpzhongMoney;
if(k>=s && k<=t)
tmpzhongMoney=b*p/100;
else
tmpzhongMoney=b;
if(zhongMoney[a]==0)
{
cost[k]+=tmpzhongMoney;
zhongMoney[a] =tmpzhongMoney;
}else if(tmpzhongMoney<zhongMoney[a])
{
cost[k]-=zhongMoney[a];
cost[k]+=tmpzhongMoney;
zhongMoney[a] =tmpzhongMoney;
}
}
}
}
int ans=cost[0];
for(i=0;i<m;i++)
{
if(cost[i]<ans)
ans = cost[i];
}
printf("%d",ans);
return 0;
}
J题答案
做这题的时候是真的离谱 首先是我忘了scanf读取字符要怎么敲 然后又不知道为什么内存泄漏,蓝桥杯官方给的devc编辑器直接没反应了,一跑程序windows就提示病毒,我也是第一次遇见这种情况哈哈哈哈,后来换了我平时用的codeblocks编译时会提醒我哪里代码有问题,改好就正常了 同样拿基础分,“优化”这种东西你想得到就很快想出来了,想不到就别死磕了,蓝桥杯每道题能拿一半分也稳国一了吧,当然我拿不到哈哈哈
#include <bits/stdc++.h>
using namespace std;
char str[100010];
int main()
{
int m,i,j;
scanf("%s",str);
scanf("%d",&m);
for(i=0;i<m;i++)
{
int l,r;
char x,y;
scanf("%d %d",&l,&r);
getchar();
x= getchar();
getchar();
y= getchar();
for(j=l-1;j<r;j++)
if(str[j]==x)
str[j]=y;
}
printf("%s",str);
return 0;
}
|