数据结构和算法
文章平均质量分 60
数据结构和算法
漂流の少年
stay hungry, stay foolish.
展开
-
第十届蓝桥杯B组Java试题答案(省赛)
试题 A: 组队作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大可能是多少?答案:490直接暴力(直接复制表格中的数据作为输入)import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input =.原创 2022-02-13 23:30:08 · 1660 阅读 · 0 评论 -
蓝桥杯练习 字母图形
蓝桥杯练习 字母图形题目:利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。输入格式输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。输出格式输出n行,每个m个字符,为你的图形。样例输入5 7样例输出ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC数据规模与约定1 <= n, m原创 2021-04-06 00:00:17 · 122 阅读 · 0 评论 -
蓝桥杯试题 分巧克力
蓝桥杯试题 分巧克力题目:儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。 为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足: 1. 形状是正方形,边长是整数 2. 大小相同 例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。 当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么? 输入格式原创 2021-04-06 00:03:10 · 113 阅读 · 0 评论 -
第八届蓝桥杯B组Java试题答案(初赛)
蓝桥杯原创 2022-02-26 13:17:21 · 287 阅读 · 0 评论 -
蓝桥杯试题 核桃的数量
题目:小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:各组的核桃数量必须相同各组内必须能平分核桃(当然是不能打碎的)尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)输出格式输出一个正整数,表示每袋核桃的数量。样例输入2 4 5样例输出20#include <stdio.h> /原创 2021-04-05 13:26:24 · 96 阅读 · 0 评论 -
第十二届蓝桥杯B组Java试题答案(省赛)
试题H 杨辉三角形【评测用例规模与约定】对于 20% 的评测用例,1 ≤ N ≤ 10;对于所有评测用例,1 ≤ N ≤ 1000000000。原创 2022-01-15 16:09:31 · 893 阅读 · 3 评论 -
备战蓝桥杯
一、基础算法二、搜索三、数学四、数据结构五、动态规划线性dp走楼梯走楼梯2六、图论原创 2022-04-07 21:11:06 · 694 阅读 · 0 评论 -
第九届蓝桥杯B组Java试题答案(初赛)
蓝桥杯试题原创 2022-04-06 18:50:30 · 836 阅读 · 0 评论 -
蓝桥杯填空题(C/C++)
第三题(19年)标题:数列求值 (本题总分:10 分)###给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。答案:4659#include <stdio.h>int solve(int n){ if(n<=3) return 1; int a=1,b=1,c=1,ans,i; for(i=4;i<=n;i++){ ans=(a+b+c)%10000; //因为原创 2021-04-17 10:25:20 · 3129 阅读 · 1 评论 -
接水问题(C语言)
接水问题题目:#include <stdio.h>int sort(int *t,int n){ int i,j,small=t[0],small_index=0; for(i=1;i<n;i++){ if(small>t[i]){ small=t[i]; small_index=i; } } return small_index;} int main(){ int n,m,i,max; scanf("%d %d",&n,&am原创 2021-04-05 13:14:56 · 949 阅读 · 0 评论 -
第十一届蓝桥杯B组Java试题答案(省赛)
试题 A: 解密小明设计了一种文章加密的方法:对于每个字母 c,将它变成某个另外的字符 T c 。下表给出了字符变换的规则:例如,将字符串 YeRi 加密可得字符串 EaFn。小明有一个随机的字符串,加密后为EaFnjISplhFviDhwFbEjRjfIBBkRyY(由 30 个大小写英文字母组成,不包含换行符),请问原字符串是多少?答案:YeRikGSunlRzgDlvRwYkXkrGWWhXaA试题 B: 纪念日2020 年 7 月 1 日是中国原创 2022-02-03 16:24:57 · 1649 阅读 · 0 评论 -
LeetCode练习目录
动态规划原创 2021-08-17 21:03:38 · 271 阅读 · 0 评论 -
算法课程小结
1.算法的基本概念广义:在解决问题时,按照某种机械步骤一定可以得到问题结果(有解时给出问题的解,无解时给出无解的结论)的处理过程。狭义:用计算机解决问题的方法和步骤的描述。程序=数据结构+算法算法是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算。算法的五个重要特性 :确定性、能行性、输入、输出、有穷性/有限性1)确定性:算法每种运算必须有确切定义,不能有二义性例:不符合确定性的运算:①5/0 ②将6或7与x相加 ③未赋值变量参与运算2)能行性:算法中有待实现...原创 2022-01-01 10:33:05 · 1928 阅读 · 0 评论 -
地图着色问题 --- java(BFS)
已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最少。public class Map { private static final int BOARD_NUMBER = 31; private String[] board = new String[BOARD_NUMBER]; private int[][] edge = new int[BOARD_NUMBER][BOARD_NUMBER]; //初始化所有顶点均涂色0 pri.原创 2021-12-07 17:33:10 · 3392 阅读 · 4 评论 -
走迷宫问题(广度优先搜索) --- java实现
1.问题迷宫是许多小方格构成的矩形,在每个小方格中有的是墙(用“1”表示)有的是路(用“0”表示)。走迷宫就是从一个小方格沿上、下、左、右四个方向到邻近的方格,当然不能穿墙。设迷宫的入口是在左上角(1,1),出口是右下角(8,8)。根据给定的迷宫,找出一条从入口到出口的路径。2....原创 2021-11-30 21:03:09 · 1483 阅读 · 0 评论 -
三元组压缩存储结构的稀疏矩阵的转置运算
三元组压缩存储结构的稀疏矩阵的转置运算题目:构建矩阵的三元组顺序表压缩存储结构;实现三元组压缩存储结构的矩阵的创建、输出,简单转置和快速转置。#include <stdio.h>#define MAXSIZE 200typedef struct{ int row,col; int e;}Triple;typedef struct{ Triple data[MAXSIZE+1]; int m,n,len;}TSMatrix;void Init(TSMatrix*T){原创 2021-04-05 11:29:29 · 1841 阅读 · 4 评论 -
串的模式匹配
串的模式匹配题目:构建串的定长顺序存储结构;实现串的创建,串的访问输出;实现模式串和主串的简单匹配算法和kmp模式匹配算法。#include <stdio.h>#include <string.h> #define MAXLEN 40typedef struct{ char ch[MAXLEN]; int len;}SString;void Input(SString *s){ gets(s->ch); s->len=strlen(s->c原创 2021-04-05 11:32:36 · 261 阅读 · 0 评论 -
哈夫曼树及哈夫曼编码
哈夫曼树及哈夫曼编码题目:构建哈夫曼树的顺序存储结构,实现哈夫曼树的创建、生成叶子结点的哈夫曼编码。#include <stdio.h>#include<string.h>#include<stdlib.h>#define N 20#define M 2*N-1typedef char* HuffmanCode[N+1];typedef struct{ int weight; int parent; int Lchild; int Rchild;原创 2021-04-05 11:36:44 · 409 阅读 · 1 评论 -
算法入门 - 动态规划
例题1 数字三角形 7 3 8 8 1 0 2 7 4 44 5 2 6 5在上面的数字三角形中寻找一条从顶部到底边的路径。使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可,不必给出具体路径。1<三角形的行数<=100,数字为0-99输入:5 //三角形的行数73 88 1 02 7 4 44 5 2 6 5要求输出最大和思路 递归D(r...原创 2021-10-07 19:40:16 · 100 阅读 · 0 评论 -
算法入门 - 分治
把一个任务,分成形式和原任务相同,但规模更小的几个部分任务,分别完成,或只需要选一部完成。然后再处理这几个部分的结果,从而实现整个任务的完成。分治典型应用 归并排序① 把前一半排序②把后一半排序③把两半归并到一个新的有序数组,然后再拷贝回原数组时间复杂度O(nlogn)#include <iostream>using namespace std;int a[10] = { 13, 27, 19, 2, 8, 12, 2, 8, 30, 89 };int b[.原创 2021-10-06 00:08:25 · 112 阅读 · 0 评论 -
算法入门 - 递归
一个函数调用其自身就是递归递归和普通函数调用一样都是利用栈来实现的例题1 求阶乘#include <iostream>using namespace std;int Factorial(int n) { if(n==0) { return 1; } else { return n*Factorial(n-1); }}int main() { cout<<Factorial(5); return 0;}例题2 汉诺塔问题古代有..原创 2021-09-28 20:33:31 · 235 阅读 · 0 评论 -
算法入门 - 枚举
枚举就是逐个尝试可能的答案来求解问题枚举的同时应尽可能去缩小枚举的范围例题1 完美立方形如a^3=b^3+c^3+d^3的等式被称为完美立方等式。例如12^3=6^3+8^3+10^3。编写一个程序,对任给的正整数N(N<=100),寻找所有的四组元素(a,b,c,d),使得a3=b3+c3+d3, 其中a,b,c,d大于1,小于等于N,且b<=c<=d。分析a枚举范围 [2, N]b枚举范围 [2, a-1]c枚举范围 [b, a-1]d枚举范围 [c,原创 2021-09-14 18:31:21 · 462 阅读 · 0 评论