蓝桥杯
教授先生
这个作者很懒,什么都没留下…
展开
-
一个案例就学会next_permutation
【代码】一个案例就学会next_permutation。原创 2023-04-03 19:50:02 · 75 阅读 · 0 评论 -
小朋友崇拜圈(dfs蓝桥杯)
在一个游戏中,需要小朋友坐一个圈,每个小朋友都有自己最崇拜的小朋友在他的右手边。班里 N 个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己)。如下图所示,崇拜关系用箭头表示,红色表示不在圈中。输入第一行,一个整数 N(3<N<10^5)。要求输出一个整数,表示满足条件的最大圈的人数。显然,最大圈是[2 4 5 3] 构成的圈。接下来一行 N 个整数,由空格分开。小朋友编号为1,2,3,⋯N。求满足条件的圈最大多少人?原创 2023-03-24 17:04:09 · 219 阅读 · 0 评论 -
消除游戏C++(2022年十三届蓝桥杯真题F)
涉及到前继、后继数组,蓝桥杯十三届F真题。原创 2023-03-22 17:10:12 · 910 阅读 · 0 评论 -
数位排序(蓝桥杯sort的cmp函数)
1 到 13 的排序为: 1,10,2,11,3,12,4,13,5,6,7,8,91,10,2,11,3,12,4,13,5,6,7,8,9。小蓝对一个数的数位之和很感兴趣, 今天他要按照数位之和给数排序。当 两个数各个数位之和不同时, 将数位和较小的排在前面, 当数位之和相等时, 将数值小的排在前面。例如, 2022 排在 409 前面, 因为 2022 的数位之和是 6, 小于 409 的数位 之和 13。又如, 6 排在 2022 前面, 因为它们的数位之和相同, 而 6 小于 2022。原创 2023-03-19 15:01:21 · 393 阅读 · 0 评论 -
杨辉三角形(简明易懂)
描述编程输入一个正整数N,输出杨辉三角的前N行。用二维数组实现,先把各个数值存储到数组中,再输出。输入一个整数N,N<20。原创 2021-12-05 13:40:18 · 4385 阅读 · 0 评论 -
1119 九九乘法表的值(%-4d等 的含义)
题目描述给定一个正整数n,打印1~n的乘法表上每个位置的数值。n小于等于9。输入要求输入一个正整数n。输出要求输出1~n的乘法表上对应位置的数值,输入样例5输出样例12 43 6 94 8 12 165 10 15 20 25提示用%-4d控制左对齐的输出格式,但是每行对角线上数据直接用"%d\n"来控制输出。#include<stdio.h>#include<math.h&原创 2021-11-12 23:27:14 · 5172 阅读 · 0 评论 -
C - 二进制换十进制(简单)
把一个二进制数转化为十进制数。输入格式第一行一个正整数n\ (1<= n<=30)n(1≤n≤30),表示二进制数的长度。第二行一个二进制数。输出格式输出一个整数,表示对应的十进制数。Sample Input510101Sample Output21#include<stdio.h>#include<math.h>int main(){ int n,sum=0;//定义sum为总和 char b[999];...原创 2021-11-16 23:24:07 · 345 阅读 · 0 评论 -
1131 统计素数
题目描述判断[ k1,k2]之间有多少个素数(包含k1和k2),并输出这些素数。 ( 1 <= k1 < k2 <= 1000 )输入要求输入两个正整数k1和k2。输出要求输出两行信息,第一行是[k1,k2]之间素数个数,第二行输出所有素数。素数之间用空格分开。输入样例1 10输出样例42 3 5 7提示最后一个素数的后面直接换行,不需要再加空格。#include<stdio.h> in翻译 2021-11-14 10:50:23 · 801 阅读 · 0 评论 -
多项式之和 Sn=a+aa+aaa+aaaa+.....+aaa.....aa(n个a)
描述计算如下式子Sn的值。例如a为2,n为5,则式子的值为24690(2+22+222+2222+22222)。输入输入a(1<=a<=9)和n。输出输出式子的值输入输出示例 输入 输出 示例 1 2 5 24690 #include<stdio.h>#include<math.h> //调用math.h这个头文件 ,目的是引用pow这个函数 int main(){ int i,a,n,sum=0.原创 2021-11-09 23:46:28 · 2115 阅读 · 0 评论 -
B - 简单暴力(计算今年第几天)
B - 简单暴力(计算今年第几天)请你计算出x年y月z日是x年的第几天。请注意闰年对答案的影响。输入格式一行三个整数,x,y和z。(1583≤x≤2100)。数据保证输入合法。输出格式一个整数,表示是第几天。#include<stdio.h>int main(){int x,y,z,d,f,n; //闰年年份是4的倍数的,且不是100的倍数或者是400的倍数 scanf("%d%d%d",&x,&y,&z); //这...原创 2021-11-15 22:32:25 · 374 阅读 · 0 评论 -
1122 百灯判熄
题目描述有M盏灯,编号为1~M,分别由相应的M个开关控制。开始时全部开关朝上(朝上为开,灯亮),然后进行以下操作:编号凡是1的倍数的灯反方向拨一次开关;是2的倍数的灯再反方向拨一次开关;是3的倍数的灯又反方向拨一次开关,......,直到是M的倍数的灯又反方向拨一次开关。请从键盘输入一个整数m代表灯的数量,求出最后为熄灭状态的灯(不亮)的数量以及编号并输出。输入要求输入一个整数m(1≤m≤100)。输出要求输出为两行,第一行是熄灭状态的灯的数量;第二行是最后为熄灭状原创 2021-11-13 11:43:11 · 1090 阅读 · 1 评论 -
sort函数的使用(c++) bool函数使用
sort函数使用题目,要求输入n(范围要求最大不能超过10^5),再输入n个数,按从小到大输出。#include <iostream>#include<algorithm>//这个是sort函数的头文件,如果也可以用万能头文件#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;//1e5+10=10^5+10,加多少都可以,100,1000,目的是防止越界//题目规定范围就原创 2022-01-14 00:03:31 · 2258 阅读 · 0 评论 -
汉诺塔问题(递归思想)(堆栈学习)
#include<stdio.h>//汉诺塔问题运用到递归思想, int num=0 ;//首先要给大家介绍一下堆栈 //想象一下,有一个递归函数当他执行自己本身的程序时//因为条件满足,它程序又进去它本身的这个函数,//而这个程序本身执行到当前位置就会暂时停止 (因为递归) //这时候,需要有一个空间去存放停止时候的具体数据//堆栈是一个用于存放上个位置暂停(因为递归)时的数据//当递归完成以后,才会删除掉堆栈保存的数据 //堆载在这个程序中作...原创 2022-01-06 00:05:34 · 1013 阅读 · 0 评论 -
一维前缀和,二维前缀和,一维差分,二维差分(翻译)
前缀和,二维前缀和,一维差分,二维差分(浓缩精华无敌翻译)原创 2022-01-15 17:02:52 · 235 阅读 · 1 评论 -
找鞍点(复习)
描述一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。原创 2021-12-30 00:18:28 · 99 阅读 · 0 评论 -
斐波那契数列(复习)
描述斐波那契(Fibinacci)数列是这样一个数列:1、1、2、3、5、8、13、21、……, 这个数列前两项是1,从第二项开始,每一项都等于前两项之和。 编程输出Fibinacci数列的前20项。5个数一行。输入输出示例 输入 输出 示例 1原创 2021-12-28 14:16:27 · 2444 阅读 · 0 评论 -
2020年第十届C/C++ B组第二场蓝桥杯省赛真题(跑步锻炼)第4道
第四题:跑步锻炼题目描述小蓝每天都锻炼身体。正常情况下,小蓝每天跑1千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。请问这段时间小蓝总共跑步多少千米?题目分析首先算出总的天数,和月份数,然后求出一共有多少个周一,和周一中为月份的天数最后总天数+周一天数+月初天数 - 周一和月初重合天数题目代码#include<stdio.h>.原创 2022-01-08 00:24:23 · 1170 阅读 · 2 评论 -
判断是否是最简分数(既约分数)(辗转相除法)(暴力枚举)
判断一个分数是否为既约分数的算法(既约分数是指 分数的分子和分母的最大公约数是1 ,也称为最简分数)最简分数,是分子、分母只有公因数1的分数,或者说分子和分母互质的分数,又称既约分数以下为2段代码,第一段是我一开始自己写的,第二段是网上看到的运用的数学家欧里几得的辗转相除法,第二段代码建议读者背诵。它设计的很灵活,第一段代码简明易懂,但在计数较大数值时花费时间较长,第二段代码可以快速计算和判断。(暴力枚举法)#include<stdio.h>//判断一个分数是否为既约分数的算.原创 2022-01-07 17:04:53 · 2693 阅读 · 0 评论 -
动态规划01背包问题入门学习,详细笔记,推荐阅读
问题描述:给定N种物品和一个背包。物品i的重量是Wi,其价值位Vi ,背包的容量为C。问应该如何选择装入背包的物品,使得转入背包的物品的总价值为最大??在选择物品的时候,对每种物品i只有两种选择,即装入背包或不装入背包。不能将物品i装入多次,也不能只装入物品的一部分。因此,该问题被称为0-1背包问题。建议读者可以先把代码段复制在devc++编辑器上,再手机打开csdn保存图片阅读,创作不易,您的每一个点赞,关注,评论都是对作者的最大支持,谢谢。#include&...转载 2022-01-04 22:10:38 · 232 阅读 · 0 评论 -
1135 求矩形个数(宁波OJ)
有一个大的矩形由(M*N)个小的矩形组成。求一共有多少个矩形。输入要求输入两个整数,分别代表M,N (0 <= N,M < 100) 。输出要求输出矩形的个数。输入样例2 2输出样例#include<stdio.h>int A(int n,int m){//m表示在下面,n在上面 int i,result=1; //这个是我自定义的子函数 for(i=n;i>0;i--){//是排...原创 2022-01-03 13:37:55 · 5046 阅读 · 1 评论 -
去重复算法(C语言)
题目:要求输入一个n,再输入n个数字(范围要求在0到1000内),最后再按照输入顺序输出,保证其中没有出现重复数字。(题目是我自己编的,主要是学习这种思想)代码段#include<stdio.h>//去重复思想教学://在输入的时候,可以采用数组首先全部标记为0控制,//存储一次后把该数组变为1,//下次输入相同数字时不满足为0这个条件 //保证输入的相同数字在输入第二次后//不会存储在数组当中 //从而实现去重复的目的 int main(){ int n,i,j,原创 2022-01-14 12:18:53 · 2348 阅读 · 1 评论 -
字符串的连接(复习)
本题要求实现一个函数,将两个字符串连接起来。函数接口定义:void str_cat( char *s, char *t );函数str_cat应将字符串t复制到字符串s的末端,并且返回字符串s的首地址。输入输出示例 输入 输出 示例 1 abcdef原创 2021-12-28 13:51:21 · 915 阅读 · 0 评论 -
dp动态规划_最短路径累加和最大问题
dp动态规划_最短路径累加和最大问题原创 2022-01-17 20:05:30 · 567 阅读 · 0 评论 -
找出不是两个数组共有的元素(学习去重复算法)
描述给定两个整型数组,本题要求找出不是两者共有的元素。输入输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。..原创 2021-12-30 00:13:38 · 2641 阅读 · 0 评论 -
求字符串长度(复习)
求一个字符串的长度(不允许用strlen函数)。函数接口定义: int StringLen(char *str);str是用户传入的参数。 函数求字符串str的长度并返回长度。输入输出示例.原创 2021-12-28 13:45:53 · 1822 阅读 · 0 评论 -
回文问题
[问题描述] 回文是从前向后读和从后向前读都一样的字符串,输入一个字符串,程序判断该字符串是否是回文后输出。例如:字符串LEVEL是回文,而123312就不是回文。[输入格式] 输入一个字符串,以回车结束。 [输出格式] 如是回文,输出“Yes”;反之,输出“No”。..原创 2021-12-28 13:49:34 · 294 阅读 · 0 评论 -
1180魔方阵(每日学习)宁波大学OJ
魔法格子代码#include<stdio.h>//int main(void){ int n,x,y,a[20][20]={0},i,j,k;//先在1个20*20的二维数组里全部存储0 scanf("%d",&n); x=(n-1)/2;//赋初值,从中间的位置开始 y=0;//从第0行开始 a[y][x]=1;//先令第 0行的中间位置为1 //核心赋值部分,遍历输入部分 //需要循环输入的次数n*n,已经输入1,所以从2开始 for(i=2;i&原创 2022-02-04 13:42:24 · 891 阅读 · 0 评论 -
1210 班费问题(宁波大学OJ)
题目描述期末了,班长CoCo决定将剩余班费x元钱用于购买若干支钢笔进行奖励。商店里有三种钢笔,单价分别为6元、5元和4元。小Q想买尽量多的笔,并且不再剩余钱。请帮小Q制定出一种买笔的方案。若无解(指所有方案都有剩余钱)则输出“No Answer”。输入要求班费x元输出要求有解时依次输出6元、5元和4元钢笔各买支数。若无解(指所有方案都有剩余钱)则输出“No Answer”,输出不包含双引号。输入样例35输出样例1原创 2022-02-10 20:51:36 · 8606 阅读 · 0 评论 -
1138 清除行注释(宁波大学oj)
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)提交数 : 7779 | 通过数 : 2619题目描述给出一个C++源程序代码,请将其中的注释去掉。已知注释全部采用行注释的形式,即用双斜杠开头的字符串,后面的内容全部作为注释内容(包含双斜杠)。输入要求输入若干行源程序代码(含行注释),以文件控制结束。输出要求输出去掉注释后的代码,其余内容不变。输入样例//=====原创 2022-02-07 00:37:33 · 1253 阅读 · 0 评论 -
dp动态规划_最长上升子序列问题
动态规划原创 2022-01-17 21:39:43 · 291 阅读 · 0 评论 -
蓝桥杯B组省赛预赛第一题2013(高斯日记)
题目标题: 高斯日记大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。高斯获得博士学位的那天日记上标着:8113请你算出高斯获得博士学位的年月日。原创 2022-02-13 10:57:34 · 104 阅读 · 0 评论 -
1195 巧妙推算走楼梯(宁波大学oj)
题目描述有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?输入要求输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。输出要求对于每个测试实例,请输出不同走法的数量。输入样例2 23输出样例12代码段,自己看,可以pass的,语言选c++#include<iostream>..原创 2022-02-09 17:17:44 · 721 阅读 · 0 评论 -
1196 骨牌铺放(宁波大学oj)
题目描述在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:输入要求输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n .(1<=n<=50)输出要求对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。输入样例132输出样例132提示_int 64选择g.原创 2022-02-09 17:49:45 · 399 阅读 · 0 评论 -
DFS(深度优先算法)难
给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] = 1 表示陆地, grid[i][j] = 0 表示水域。网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。图一图二#inclu...原创 2022-01-26 12:12:21 · 783 阅读 · 0 评论 -
1214 打印菱形(宁波大学OJ)
打印菱形原创 2022-02-11 11:53:42 · 738 阅读 · 0 评论 -
在二维数组中寻找最小鞍点1181(该行最大值,该列最小值)(2种思路)
题目描述找出一个2维数组矩阵的鞍点,即该位置上的元素在该行中最大,在该列中最小,可能不存在鞍点,如果存在多个,输出最小的那个!输入要求输入 n,m表示二维矩阵的行数和列数,然后根据行列数输入n*m个数据构成一个二维矩阵。输出要求如果存在鞍点,则输出该鞍点的值,如果不存在则输出not exist。输入样例4 51 2 3 4 52 4 6 8 103 6 9 12 154 8 12 16 20输出样例5思路1:记录下每行的最大值所在的列原创 2022-02-03 00:53:45 · 1712 阅读 · 0 评论 -
完全背包问题(转载)
#include<iostream>using namespace std;const int N = 1010;int f[N][N];int v[N],w[N];int main(){ int n,m; cin>>n>>m; for(int i = 1 ; i <= n ;i ++) { cin>>v[i]>>w[i]; } for(int i = ...转载 2022-04-06 21:27:17 · 78 阅读 · 0 评论 -
输出一个数的所有因数(可实现大数)时间复杂度低时间短
输入一个数的所有因数,时间高效优化原创 2022-04-04 21:45:11 · 1752 阅读 · 0 评论 -
01背包问题笔记(转载)
// 01背包:二维朴素写法#include<iostream>using namespace std;const int N = 1010;int n, m;int v[N], w[N];int f[N][N];int main(){ cin >> n >> m; for (int i = 1; i <= n; i ++ ) cin >> v[i] >> w[i]; for (int...转载 2022-04-06 21:17:14 · 82 阅读 · 0 评论 -
01背包模板
#include<iostream>#include<algorithm> using namespace std;int dp(int n, int m, int v[], int w[]){int sb[1000][1000]; for (int i = 0;i <= n;i++) sb[i][0] = 0; for (int j = 0;j <= n;j++) sb[0][j] = 0; for (int i = 1;i <...原创 2022-04-06 16:55:05 · 366 阅读 · 0 评论