![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯学习
文章平均质量分 63
小李编程
尽管说是小菜鸟,但小菜鸟也要努力啊!
小菜鸟蜕变计划。
展开
-
最长递增子序列
蓝桥杯练习042最长递增子序列问题描述找到给定序列的最长子序列的长度,使得子序列所有元素单调递增。输入输出输入:4 2 3 1 5 输出 3(因为2 3 5 组成了最长递增子序列) 代码#include<iostream>using namespace std;//最长递增子序列的长度//输入:4 2 3 1 5 //输出 3(因为2 3 5 组成了最长递增子序列) int f(int arr[],int n){ int maxCnt=0;//最大值 for(原创 2022-04-04 07:16:01 · 551 阅读 · 4 评论 -
钢条切割问题
蓝桥杯练习041钢条切割问题描述Serling公司购买长钢条,将其切割为短钢条出售。切割工序本身没有成本支出。公司管理层希望知道最佳的切割方案。假定我们知道Serling公司出售一段长为i英寸的钢条的价格为pi(i=1,2,…,单位为美元)。钢条的长度均为整英寸。| 长度i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 || - | - | - | - | - | - | - | - | - | - |价格pi | 1 | 5 | 8 | 16 | 10原创 2022-04-03 07:56:43 · 806 阅读 · 0 评论 -
区间调度问题
蓝桥杯练习040区间调度问题描述有n项工作,每项工作分别在si时间开始,在ti时间结束对于每项工作,你都可以选择参与与否,如果选择了参与,那么自始至终都必须全程参与,此外,参与工作的时间段不能重复(即使是开始的瞬间和结束的瞬间的重叠也是不允许的)你的目标是参与尽可能多的工作,那么最多能参与多少项工作呢?1<=n<=1000001<=si<=ti<=10^9输入:第一行:n第二行:n个整数空格隔开,代表n个工作的开始时间第三行:n个整数空格隔开,代表n原创 2022-04-02 07:12:25 · 177 阅读 · 0 评论 -
Crossing River
蓝桥杯练习039Crossing River题目链接:1700 – Crossing River (poj.org)DescriptionA group of N people wishes to go across a river with only one boat, which can at most carry two persons. Therefore some sort of shuttle arrangement must be arranged in order to row原创 2022-04-01 07:37:26 · 184 阅读 · 0 评论 -
数字三角形
蓝桥杯练习038数字三角形题目链接:1163 – The Triangle (poj.org)The TriangleTime Limit: 1000MSMemory Limit: 10000KDescription73 88 1 02 7 4 44 5 2 6 5(Figure 1)Figure 1 shows a number triangle. Write a program that calculat原创 2022-03-31 07:55:16 · 288 阅读 · 1 评论 -
递归求解一些问题实例
蓝桥杯练习037硬币问题问题描述有1元,5元,10元,50元,100元,500元的硬币各c1,c5,c10,c100,c500枚现在要用这些硬币来支付A元,最少需要多少枚硬币?假定本题至少存在一种支付方案。0<=ci<=10^90<=A<=10^9输入第一行有六个数字,分别代表从小到大6种面值的硬币的个数第二行为A,代表需支付的A元样例:输入:3 2 1 3 0 2620输出6解题思路1.本题要求最少的硬币数目,可以采用贪心算法2.用局部最原创 2022-03-30 15:23:50 · 734 阅读 · 0 评论 -
n皇后问题
蓝桥杯练习036n皇后题目描述The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.Given an integer n, return all distinct solutions to the n-queens puzzle.Return the total number of distinct solutions原创 2022-03-29 09:44:39 · 362 阅读 · 0 评论 -
水洼的数目
蓝桥杯练习035水洼数目问题描述:有一个大小为N * M的院子,雨后积起了水,八连通的积水被认为是连在一起的,请求出园子里面总共有多少水洼限制条件N, M <=100输入10 12W........WW..WWW.....WWW....WW...WW..........W...........W....W.......W..W.W.....WW.W.W.W.....W..W.W......W...W.......W.输出3解题思路(1)从头开始进行遍历原创 2022-03-28 08:55:47 · 415 阅读 · 0 评论 -
部分和(dfs)
蓝桥杯练习034部分和题目描述给定整数序列a1,a2,…,an,判断是否可以从中选出若干数,使它们的和恰好为k.1≤n≤20-10^8≤ai≤10^8-10^8≤k≤10^8样例:输入41 2 4 713输出:Yes (13=2+4+7)解题思路1.通过对输入数据的取与不取来凑k2.对每一个位置上的元素都可以取或者不取3.可以先考虑取第一个位置的元素,此时剩余k-a[0]还需要从剩余元素中取4.然后考虑下一个位置5.当k小于0或者数组下标越界时要返回上一次的位原创 2022-03-27 08:12:58 · 341 阅读 · 0 评论 -
程序员面试金典-括号配对
蓝桥杯练习033程序员面试金典第8章 面试考题8.9递归和动态规划题目要求实现一种算法,打印n对括号的全部有效组合(即左右括号正确配对)。示例输入 :3输出 :((())) (()()) (())() ()(()) ()()() (第230页)解题思路输入很简洁,输入的n表示要打印n对括号的全部有效组合可以考虑用递归求解: 1.n是数据的规模,当n足够小时很容易解决 2.当n为1时,也就是()这种情况,此时只有一种,也就是出口 3.n大于1的时候,要考虑括号的插入位置:原创 2022-03-26 14:52:26 · 4897 阅读 · 0 评论 -
蓝桥杯练习032
蓝桥杯练习032字符串匹配暴力匹配代码int indexOf1(string s,string p){ int i=0;//s int j=0;//p int scan=i;//辅助指针 while(scan<s.length()){//对s进行扫描 if(s[scan]==p[j]){//scan和j位置字符相同 scan++; j++; //j和p的长度相同,说明匹配成功,返回i if(j==p.length())return i; }el原创 2022-03-25 10:03:39 · 355 阅读 · 0 评论 -
蓝桥杯练习031
蓝桥杯练习031跳石头题目链接:跳石头 - 蓝桥云课 (lanqiao.cn)题目描述一年一度的"跳石头"比赛又要开始了!这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走M 块岩石(不原创 2022-03-24 08:11:01 · 244 阅读 · 0 评论 -
蓝桥杯练习030
蓝桥杯练习030顺时针打印二维数组代码#include<iostream>using namespace std;void print(int a[][4],int n,int m){ int leftUpRow=0,leftUpCol=0;//左上角 int rightDownRow=3,rightDownCol=3;//右下角 //每一圈为一层循环,终止条件是两个位置交错 while(leftUpRow<=rightDownRow&&leftUp原创 2022-03-23 19:15:32 · 202 阅读 · 0 评论 -
蓝桥杯练习028
蓝桥杯练习028计数排序小案例#include<iostream>using namespace std;int maxof(int a[],int n){//求数组中的最大值 int max=a[0]; for(int i=1;i<n;i++) if(max<a[i]) max=a[i]; return max; }void CountSort(int a[],int n){ int max=maxof(a,n);//a中的最大值 int hel原创 2022-03-22 09:35:30 · 1591 阅读 · 0 评论 -
蓝桥杯练习029
蓝桥杯练习029分巧克力题目链接:分巧克力 - 蓝桥云课 (lanqiao.cn)题目描述儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第 i块是 Hi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 N块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数;大小相同;例如一块 6x5 的巧克力可以切出 6 块 2x2 的巧克力或者 2 块 3x3 的巧克力。当然小朋友们都希望得到的巧克原创 2022-03-22 08:42:12 · 100 阅读 · 0 评论 -
蓝桥杯练习027
蓝桥杯练习027堆排序最小堆代码实现#include<iostream>using namespace std;void MinHeapFixDown(int a[],int i,int n){ //找到左右孩子 int left=2*i+1; int right=2*i+2; //左孩子已经越界,i就是叶子节点 if(left>=n){ return; } int min=left; if(right>=n){ min=left; }else原创 2022-03-20 10:10:48 · 86 阅读 · 0 评论 -
蓝桥杯练习026
蓝桥杯练习026最小可用id#include<iostream>#include<algorithm>using namespace std;int find(int arr[],int len){ sort(arr,arr+len); int i=0; while(i<len){ if(i+1!=arr[i]) return i+1; i++; } return i+1;}int find2(int arr[],int n){ int原创 2022-03-19 08:18:23 · 347 阅读 · 0 评论 -
蓝桥杯练习025
蓝桥杯练习025归并排序#include<iostream>using namespace std;int helper[10];void Merge(int arr[],int p,int mid,int r){ for(int i=0;i<10;i++) helper[i]=arr[i]; int left=p; //左指针 int right=mid+1;//右侧指针 int cur=p; while(left<=mid&&right原创 2022-03-18 09:06:00 · 253 阅读 · 0 评论 -
蓝桥杯练习023
蓝桥杯练习023七夕礼物题目描述七夕节要到了,小明决定给暗恋已久的女神小花送一份大礼。已知蓝桥商店有 n个玩偶,第 i 个玩偶能给人带来 ai的好感值。通过打听,小明得知了七夕节当天女神小花的心情值为 t,于是小明决定,从商店购买任意个玩偶使得这些玩偶能带来的好感值和女神小花的心情值最接近。请你输出这最小的 |心情值-好感值| 。输入描述第一行包含两个整数 n,t,其含义如题所述。接下来一行包含 n 个整数,分别表示 a1,a2,⋯,an。1≤N≤105,∣ai∣≤104 , 0≤t≤1原创 2022-03-17 14:45:46 · 376 阅读 · 0 评论 -
蓝桥杯练习024
快速排序之单向扫描与双向扫描原创 2022-03-16 18:01:26 · 211 阅读 · 0 评论 -
蓝桥杯练习022
蓝桥杯练习022锻造兵器题目描述小明一共有 n 块锻造石,第 i块锻造石的属性值为 ai。现在小明决定从这 n块锻造石中任取两块来锻造兵器。通过周密计算,小明得出,只有当两块锻造石的属性值的差值等于 C,兵器才能锻造成功。请你帮小明算算,他有多少种选取锻造石的方案可以使得锻造成功。输入描述第一行包含两个整数 n,C,其含义如题所述。接下来一行包含 n 个整数,分别表示 a1,a2,…an.1≤N≤2×105,∣ai∣≤104,0≤C≤10^9。输出描述输出共一行,包含一个整数,表示答原创 2022-03-15 09:44:10 · 434 阅读 · 0 评论 -
蓝桥杯练习021
蓝桥杯练习021二进制表示中 “1” 的个数任务介绍请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例:9 的二进制表示为 1001,有 2 位是 1 ,所以函数返回 2。知识点知识点 1:进制知识点 2:位运算代码#include<iostream>#include<bitset>using namespace std;int main(){ int n; cin>>n; int cnt=0; cout<&l原创 2022-03-13 10:41:52 · 390 阅读 · 0 评论 -
蓝桥杯练习020
蓝桥杯练习020唯一成对的数存在一个长度为 N 的数组,其内容为 1 ~ N - 1 连续自然数( N-1 个) 和 1 到 N - 1 中的某个数,即所谓数组中存在唯一成对的数。此外,数据可能是乱序的。目标是找出成对的数是什么。举个栗子举例来说,[2,3,1,2,4] 就是符合题目描述的数组,其中 2 是问题的解。知识点知识点 1:数组遍历知识点 2:异或运算实现思路不用位运算我们可以用标记法:先开辟一个辅助数组 h,长度为 N;遍历原数组 a,对 h[a[i]] 自增,原创 2022-03-12 18:58:58 · 73 阅读 · 0 评论 -
蓝桥杯练习019
蓝桥杯练习019正向扫描-日志统计题目描述小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有 N 行。其中每一行的格式是:ts id表示在 ts 时刻编号 id 的帖子收到一个"赞"。现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是"热帖"。具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是"热帖"。给定日志,请你帮助小明统原创 2022-03-11 19:51:12 · 430 阅读 · 0 评论 -
蓝桥杯练习018
蓝桥杯练习018付账问题题目描述几个人一起出去吃饭是常有的事。但在结帐的时候,常常会出现一些争执。现在有 n 个人出去吃饭,他们总共消费了 S元。其中第 i 个人带了 ai元。幸运的是,所有人带的钱的总数是足够付账的,但现在问题来了:每个人分别要出多少钱呢?为了公平起见,我们希望在总付钱量恰好为 S 的前提下,最后每个人付的钱的标准差最小。这里我们约定,每个人支付的钱数可以是任意非负实数,即可以不是 1 分钱的整数倍。你需要输出最小的标准差是多少。标准差的介绍:标准差是多个数与它们平均数差值的平原创 2022-03-08 15:12:29 · 366 阅读 · 0 评论 -
蓝桥杯练习017
蓝桥杯练习017第几个幸运数字题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。到 X 星球旅行的游客都被发给一个整数,作为游客编号。X 星的国王有个怪癖,他只喜欢数字 3,5 和 7。国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。我们来看前 10个幸运数字是:3579152125273545因而第 11个幸运数字是: 49小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则原创 2022-03-07 15:03:49 · 302 阅读 · 0 评论 -
蓝桥杯练习016
蓝桥杯练习016排列序数题目描述如果用 a b c d 这 4 个字母组成一个串,有 4!=24 种,如果把它们排个序,每个串都对应一个序号:abcd 0abdc 1acbd 2acdb 3adbc 4adcb 5bacd 6badc 7bcad 8bcda 9bdac 10bdca 11cabd 12cadb 13cbad 14cbda 15cdab 16cdba 17⋯现在有不多于 10 个两两不同的小写字母,给出它们组成的串,你能求出该串在所有排列中的序号原创 2022-03-06 09:34:16 · 121 阅读 · 0 评论 -
蓝桥杯练习015
蓝桥杯练习015外卖店优先级题目描述"饱了么"外卖系统中维护着 N家外卖店,编号 1 ∼ N。每家外卖店都有 一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减 到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果 优先级小于等于 3,则会被清除出优先缓存。给定 T时刻以内的 M条订单信息,请你计算 T 时刻时有多少外卖店在优 先缓存中?输入描述原创 2022-03-05 16:00:23 · 84 阅读 · 0 评论 -
算法之排序与排列
排序篇常见排序的介绍与比较排序是数据处理的基本操作。常见的排序算法有:排序算法时间复杂度原理选择排序O(n^2)O(n2)比较插入排序O(n^2)O(n2)比较冒泡排序O(n^2)O(n2)比较归并排序O(nlogn)O(nlogn)比较、分治快速排序O(nlogn)O(nlogn),不稳定比较、分治堆排序O(nlogn)O(nlogn)比较、二叉树计数排序O(n+k)O(n+k),不稳定对数值按位划分基数排序原创 2022-03-04 16:14:34 · 1375 阅读 · 0 评论 -
蓝桥杯练习014
蓝桥杯练习014FBI树问题描述我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。 FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2^n的“01”串S可以构造出一棵FBI树T,递归的构造方法如下: 1)T的根结点为R,其类型与串S的类型相同; 2)若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左子串S1构造R的左子树T1,由右子串S2构造R的右子树T2。原创 2022-03-03 15:54:04 · 693 阅读 · 0 评论 -
蓝桥杯练习013
蓝桥杯练习013试题 算法训练 自行车停放资源限制时间限制:1.0s 内存限制:256.0MB问题描述有n辆自行车依次来到停车棚,除了第一辆自行车外,每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或右边。(e.g.停车棚里已经有3辆自行车,从左到右编号为:3,5,1。现在编号为2的第4辆自行车要停在5号自行车的左边,所以现在停车棚里的自行车编号是:3,2,5,1)。给定n辆自行车的停放情况,按顺序输出最后停车棚里的自行车编号。输入格式第一行一个整数n。 第二行一个整数x。表示第原创 2022-03-01 15:24:21 · 134 阅读 · 0 评论 -
单链表代码实现
单链表代码实现// 单链表.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>using namespace std;#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int ElemType;typedef int Status;typedef struct Node { ElemType data; str原创 2022-02-17 17:13:45 · 709 阅读 · 0 评论 -
顺序表的代码实现
顺序表的代码实现// 顺序表.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#include <iostream>using namespace std;#define OK 1#define ERROR 0#define MAXSIZE 20#define TRUE 1#define FALSE 0typedef int Status;typedef int ElemType;typedef struct { ElemType data[原创 2022-02-16 16:06:23 · 347 阅读 · 0 评论 -
蓝桥杯练习012
蓝桥杯练习012历届真题 错误票据【第四届】【省赛】【B组】资源限制时间限制:1.0s 内存限制:256.0MB某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。要求程序首先输入一个整数N(N<100)表示后面数据行数。 接着读入原创 2022-01-21 17:02:24 · 143 阅读 · 0 评论 -
蓝桥杯练习011
蓝桥杯练习011自行车停放题目描述有 n辆自行车依次来到停车棚,除了第一辆自行车外,每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或右边。(e.g.停车棚里已经有 3 辆自行车,从左到右编号为:3,5,1。现在编号为 2 的第 4 辆自行车要停在 5 号自行车的左边,所以现在停车棚里的自行车编号是:3,2,5,1)。给定n辆自行车的停放情况,按顺序输出最后停车棚里的自行车编号。n ≤ 100000。输入描述第一行一个整数 n。 第二行一个整数x。表示第一辆自行车的编号。 以下 n-1 行原创 2022-01-15 16:07:54 · 240 阅读 · 0 评论 -
蓝桥杯练习010
蓝桥杯练习010高精度加法题目描述给定两个整数 a和 b,请你求出这两个整数的和。输入描述输入两个正整数 a,b,a 和 b 都不超过 100 位。输出描述输出 a+b。输入输出样例示例输入12345678901234567899876543210987654321输出11111111101111111110运行限制最大运行时间:1s最大运行内存: 128M解题思路C++:萌新: 这题也是个高精度问题,做法应该和上一道差不多,也是用数组模拟小学加法。我原创 2022-01-11 16:54:17 · 120 阅读 · 0 评论 -
蓝桥杯练习009
数列求值 ,解决大数阶乘的计算问题原创 2022-01-02 18:33:54 · 990 阅读 · 0 评论 -
蓝桥杯练习007
蓝桥杯练习007乘水最多的容器题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值原创 2021-12-15 21:58:53 · 87 阅读 · 1 评论 -
蓝桥杯练习008
力扣刷题,算法练习,蓝桥杯训练题原创 2021-12-15 21:56:38 · 129 阅读 · 0 评论 -
算法设计与分析005
(一)背包问题1. 问题描述 书上实例,3种物品,背包容量50公斤,物品1中10公斤,价值60元,物品2重20公斤,价值100元,物品3重30公斤,价值120元。输入格式输入的第一行包含两个整数n, m,分别表示物品的个数和背包能装重量。 以后两行分别为每个物品的重量,价值输出格式输出2行,第一行包含一个整数,表示最大价值接下来依次输出装入的物品编号及装入比例样例输入3 50w[]={10,20,30}v[]={60,100,120}样例输出背包中物品的最大价值为:240.0原创 2021-12-08 22:52:19 · 841 阅读 · 0 评论