自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 蓝桥杯——逗志芃的暴走 (C++)

题目来源:蓝桥杯算法训练知识点:搜索、Floyd算法问题描述  逗志芃是有妹子的现充,但是有时候妹子就是烦恼。因为逗志芃太逗了,所以这段时间妹子对逗志芃发动了技能无理取闹,妹子要去玩很多的景点。由于逗志芃之前抽机花费了太多的时间,不久以后又要微积分考试了,所以现在被妹子搞成暴走状态了。但是妹子永远是上帝,所以逗志芃只能带妹子出去玩,不过为了节约时间,他希望找到一条花费时间最少的一次性游览线路。输入格式  第一行1个数n,表示逗志芃所在的城市有多少个景点,接下来是一个n*n的矩阵。a(i,j)表示

2022-02-20 19:25:52 1419 3

原创 蓝桥杯——Sticks (C++)

题目来源:蓝桥杯算法训练知识点:搜索问题描述  George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgot how many sticks he had originally and how long they wer

2022-02-19 19:28:00 997 1

原创 蓝桥杯——车的放置 (C++)

题目来源:蓝桥杯算法训练知识点:DFS搜索问题描述  在一个n*n的棋盘中,每个格子中至多放置一个车,且要保证任何两个车都不能相互攻击,有多少中放法(车与车之间是没有差别的)输入格式  包含一个正整数n输出格式  一个整数,表示放置车的方法数样例输入2样例输出7数据规模和约定  n<=8  【样例解释】一个车都不放为1种,放置一个车有4种,放置2个车有2种。题目分析类似 n皇后,这里每行、每列只能放一个车,对角线没有约束,所以一行行地放置就可以了。因为车之间没有区别

2022-02-17 13:46:36 942

原创 蓝桥杯——粘木棍 (C++)

题目来源:蓝桥杯算法训练知识点:DFS搜索问题描述  有N根木棍,需要将其粘贴成M个长木棍,使得最长的和最短的的差距最小。输入格式  第一行两个整数N,M。  一行N个整数,表示木棍的长度。输出格式  一行一个整数,表示最小的差距样例输入3 210 20 40样例输出10数据规模和约定  N, M<=7题目分析暴力法 思路:列举所有可能的组合,比较求最小差距。显然这种做法在计算过程中包含大量的重复计算,耗时较长。采用 DFS+穷举 的思路:每次选择两根木棍进行合

2022-02-16 17:01:07 2407 7

原创 蓝桥杯——矩形面积交

题目来源:蓝桥杯基础练习问题描述  平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入格式  输入仅包含两行,每行描述一个矩形。  在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。输出格式  输出仅包含一个实数,为交的面积,保留到小数后两位。样例输入1 1 3 32 2 4 4样例输出1.00题目分析基础题,开始不要想得太复杂。我们先假设所有输入

2022-02-12 17:00:15 708

原创 蓝桥杯——完美的代价

题目来源:蓝桥杯基础练习知识点:回文串,字符串处理问题描述  回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。  交换的定义是:交换两个相邻的字符  例如mamad  第一次交换 ad : mamda  第二次交换 md : madma  第三次交换 ma : madam (回文!完美!)输入格式  第一行是一个整数N,表示接下来的字符串的长度(N <=

2022-02-12 11:58:33 165

原创 蓝桥杯——回形取数

题目来源:蓝桥杯基础练习问题描述  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式  输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。  样例输入3 31 2 34 5 67 8 9样例输出1 4 7 8 9 6 3 2 5  样例输入3 2

2022-02-07 16:47:40 787

原创 蓝桥杯——2n皇后问题

题目来源:蓝桥杯基础练习知识点:回溯,递归问题描述  给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。输入格式  输入的第一行为一个整数n,表示棋盘的大小。  接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。输出格式  输出一个整

2022-02-05 13:01:58 378

原创 蓝桥杯——礼物

题目来源:蓝桥杯算法训练知识点:二分法,前缀和问题描述  JiaoShou在爱琳大陆的旅行完毕,即将回家,为了纪念这次旅行,他决定带回一些礼物给好朋友。  在走出了怪物森林以后,JiaoShou看到了排成一排的N个石子。  这些石子很漂亮,JiaoShou决定以此为礼物。  但是这N个石子被施加了一种特殊的魔法。  如果要取走石子,必须按照以下的规则去取。  每次必须取连续的2*K个石子,并且满足前K个石子的重量和小于等于S,后K个石子的重量和小于等于S。  由于时间紧迫,Jiaosho

2022-02-04 17:17:35 2442

原创 蓝桥杯——Huffuman树

题目来源:蓝桥杯基础练习知识点:排序,循环次数问题描述  Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。  给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下:  1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。  2. 重复步骤1,直到{pi}中只剩下一个数。  在上面的操作过程中,把所有的费用相加,就得到了

2022-02-04 12:45:23 131

原创 蓝桥杯——无聊的逗

题目来源:蓝桥杯算法训练知识点:动态规划,等和子集问题描述  逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中。不过他想到了一个游戏来使他更无聊。他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的情况下长度最长是多少。输入格式  第一行一个数n,表示n个棍子。第二行n个数,每个数表示一根棍子的长度。输出格式  一个数,最大的长度。  样例输入41 2 3 1样例输出3数据规模和约定  n<=15问题分析本题

2022-01-30 17:53:14 2238 3

原创 蓝桥杯——数字游戏

题目来源:蓝桥杯算法训练知识点:全排列(穷举)问题描述  给定一个1~N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列都比上一次的序列长度少1,最终只剩一个数字。  例如:  3 1 2 4  4 3 6  7 9  16  现在如果知道N和最后得到的数字sum,请求出最初序列a[i],为1~N的一个排列。若有多种答案,则输出字典序最小的那一个。数据保证有解。输入格式  第1行为两个正整数n,sum输出格式  一个1~N的一个排列

2022-01-30 16:01:10 1510

原创 蓝桥杯——最小字符串

题目来源知识点:贪心算法问题描述给定一些字符串(只包含小写字母),要求将他们串起来构成一个字典序最小的字符串。输入格式第一行 T,表示有T组数据。接下来 T 组数据每组第一行一个正整数n,表示字符串个数。接下来n行,每行一个字符串(长度不超过100)。输出格式T行,每行一个字符串。样例输入13abc样例输出abc数据规模和约定T<=7000,n<=100;题目分析一开始我的做法为:对一组中的所有字符串按照从小到大排序,依次输出。提交代码发现答案

2022-01-29 16:58:24 2965

原创 蓝桥杯——印章、拿金币

题目来源:蓝桥杯算法训练知识点:动态规划(DP)动态规划介绍动态规划常用于求解最优问题。在我看来,动态规划的求解过程是走一步看一步,每走一步都确保当前的状态下是最优的。也可以说,动态规划将大问题划分为多个阶段的子问题,每个子问题都求得最优解,那么组合成的大问题就得到了最优解。我将动态规划的实现写成如下四个步骤:定义DP数组,一般是二维数组。这个数组描述了问题的状态和对应状态下的值。这个所谓的值一般就是我们要求的东西(最大数、最小数)。数组的行、列分别代表什么含义也是需要想清楚的。确定状态转移方

2022-01-29 16:02:28 747

原创 蓝桥杯——十六进制转八进制

题目来源:蓝桥杯基础练习知识点:进制转换,字符输入问题描述  给定n个十六进制正整数,输出它们对应的八进制数。输入格式  输入的第一行为一个正整数n (1<=n<=10)。  接下来n行,每行一个由0 ~ 9、大写字母A ~ F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式  输出n行,每行为输入对应的八进制正整数。【注意】输入的十六进制数不会有前导0,比如012A。输出的八进制数也不能有前导0。样例输入  2  39

2022-01-27 12:25:13 778

原创 蓝桥杯——等差数列

题目来源:2019,省赛知识点:等差数列,最大公约数 (gcd)题目描述数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中 N 个整数。现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?输入描述输入的第一行包含一个整数 N。第二行包含 N 个整数 A1,A2,⋅⋅⋅,ANA_1,A_2,··· ,A_NA1​,A2​,⋅⋅⋅,AN​ (注意A1A_1A1​~ANA_NAN​并不一定是按等差数列中的顺序给出)其中,2≤N≤105

2022-01-24 12:06:25 248

原创 蓝桥杯——迷宫

题目来源:2019,省赛知识点:BFS,C++文件读写题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。对于上面的迷宫,从入口开始,可以按 DRRURRDDDR的顺序通过迷宫, 一共 10 步。其中 D、U、L、R 分别表

2022-01-23 17:52:54 1748

原创 蓝桥杯——数的分解

题目来源:2019,省赛知识点:数据分解,字符串与数字的转换题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。运行限制最大运行时间:1s最大运行内存: 128M题目分析分解数字为三个更小的数字的加组合,首先还是考虑暴

2022-01-22 12:08:28 465

原创 蓝桥杯——数列求值

题目来源:2019,省赛知识点:数据表示范围,数据溢出题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。给定数列 1, 1, 1, 3, 5, 9, 17,⋯,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。运行限制最大运行时间:1s最大运行内存: 128M题目分析首先尝试暴力解法,如果能暴力解决就不需要复杂的算法。暴力解法即直接使用一个循环,逐个计算数列元素的值。代码#include <iostream

2022-01-22 11:46:58 650

转载 PyTorch实现MNIST手写数字识别

最近在学习神经网络,这里做一个小实践。本文为转载,点击这里跳转原文。1. 环境配置这里使用PyTorch来训练模型。安装PyTorch与机器的显卡似乎有一定关系,安装教程网上搜索即可。配置完成后,在Jupyter Notebook中编写代码。首先引入PyTorch。import torchimport torchvisionfrom torch.utils.data import DataLoader2. 准备数据集定义一些超参数:n_epochs = 3 #循环整个训练数据集的次数

2021-10-22 11:22:46 362

原创 蓝桥杯-后缀表达式

蓝桥杯2019年第十届省赛真题-后缀表达式题目描述给定 N 个加号、M 个减号以及 N + M + 1 个整数 A1, A2, · · · , AN+M+1,小 明想知道在所有由这 N 个加号、M 个减号以及 N + M + 1 个整数凑出的合法的 后缀表达式中,结果最大的是哪一个?请你输出这个最大的结果。例如使用1 2 3 + -,则 “2 3 + 1 -” 这个后缀表达式结果是 4,是最大的。输入第一行包含两个整数 N 和 M。第二行包含 N + M + 1 个整数 A1, A2,

2021-09-27 10:48:50 256

原创 Linux-GDB调试工具使用

借助学习CSAPP做实验的契机,学习一下gdb工具的使用。Linux版本:Ubuntu20.04。1. GDB是什么是 Linux 下常用的程序调试器借助 GDB 调试器可以实现以下几个功能:程序启动时,可以按照自定义的要求运行程序,例如设置参数和环境变量;支持断点调试;程序执行过程中,可以改变某个变量的值、改变代码的执行顺序,从而尝试修改程序中出现的逻辑错误。2. GDB下载和安装教程判断当前 Linux 发行版是否安装有 GDB 的方法也很简单,就是在命令行窗口中执行 g

2021-05-19 15:55:34 431

原创 数据结构之二叉树练习

1.二叉树的结构二叉链表结构:struct BiNode{ char data; BiNode* lChild; BiNode* rChild; BiNode():lChild(NULL),rChild(NULL){}}三叉链表结构struct BiNode{ char data; BiNode* lChild; BiNode* rChild; BiNode* father; BiNode():lChild(NULL),rChild(NULL),father(NULL)

2021-01-26 19:44:16 617

原创 数据结构之森林转换二叉树

题目描述给定一组森林,编写程序生成对应的二叉树,输出这颗二叉树叶结点对应的二进制编码.规定二叉树的左边由0表示,二叉树的右边由1表示。输入输入:N B 表示N个树,每结点最多B个分支第2行至第N+1行,每个树的先序遍历输出每行表示一个叶结点对应的二进制编码.样例输入3 3A B 0 0 0 C 0 0 0 D 0 0 0E F 0 0 0 0 0G H 0 0 0 I J 0 0 0 0 0 0样例输出0 1 11 01 1 0 1 0.

2021-01-26 19:44:01 1676

原创 数据结构之图的最小生成树以及图的连通性

一、图的最小生成树算法1. Prim算法蛮力法,特点:使用访问数组,三层循环,思路简单,但时间复杂度较高。#define MaxWeight 1000struct Node{//边信息 int v1;//顶点1下标 int v2;//顶点2下标 int weight;};class Map{ int len;//顶点数 string *name;//顶点数组 int **P;//邻接矩阵 int *v;//访问数组 Node *node;//存放边信息public:

2021-01-26 19:43:45 582

原创 数据结构之图练习

一、图的基本存储结构邻接矩阵邻接表这是图的两种基本表示方法,当然还有改进的十字链表、多重邻接矩阵等,在这里就不展开。邻接矩阵适用于稠密图,因为它是以顶点来表示的;邻接表适用于稀疏图,对于边较少的图比较合适。二、图的创建邻接矩阵#include<iostream>#include<string>using namespace std;class Map{ int VertexNum;//顶点数 int ArcNum;//边数 string *Ver

2021-01-26 19:43:29 276

原创 数据结构之图的最短路径和拓扑排序及应用

一、图的最短路径图的最短路径问题指的是从给定顶点到其余各顶点的最短路径,常用迪杰斯特拉算法求解。例题:DS图—图的最短路径题目描述给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。输入第一行输入t,表示有t个测试实例第二行输入顶点数n和n个顶点信息第三行起,每行输入邻接矩阵的一行,以此类推输入n行第i个结点与其它结点如果相连则为距离,无连接则为0,数据之间用空格隔开。第四行输入v0,表示求v0到其他顶点的最短路径距离以此类推输入下一个示例输出对

2021-01-26 19:43:12 485

原创 数据结构之赫夫曼树

1.赫夫曼树的基本操作赫夫曼树采用线性结构(即数组)存储最为简单,相关的基本操作有:树的构建、字符的编码、字符串的译码。每个结点应该包含的信息有:字符内容、父结点和左右孩子结点的下标、权重以及该字符的编码。struct HFNode{ char ch; int weight; int parent, lChild, rChild; string code; HFNode(){ parent = 0; lChild = 0; rChild = 0; code = "";

2021-01-26 19:42:45 210

原创 数据结构之队列

队列练习题题目描述假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间。输入输入第1行给出正整数N(≤1000),为顾客总人数;随后N行,每行给出一位顾客的到达时间T和事务处理时间P,并且假设输入数据已经按到达时间先后排好了顺序;最后一行给出正整数K(≤10),为开设的营业窗口数。输出

2020-12-13 16:42:53 98

原创 数据结构之顺序表练习

计算2支股票的M天运动平均价格题目描述给定2支股票的开盘价和收盘价的N天历史数据,要求按开盘和收盘,分别计算每支股票的每个日期对应的M天移动平均价格。假定两个股票数据如下:日期 开盘/收盘 第1支股票价格S1 第2支股票价格S22004/7/29 close 642004/7/25 close 2 62004/7/26 open 8 122004/7/30 open 2 42004/7/27 close 8 102004

2020-12-01 16:57:44 453

原创 动态规划求AOE网的关键路径

Problem Description一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图。AOE(Activity On Edge)网:顾名思义,用边表示活动的网,当然它也是DAG。与AOV不同,活动都表示在了边上,如下图所示:如上所示,共有11项活动(11条边),9个事件(9个顶点)。整个工程只有一个开始点和一个完成点。即只有一个入度为零的点(源点)和只有一个出度为零的点(汇点)。关键路径:是从开始点到完成点的最长路径的长度。路径的长度是边上活动耗费的时间.

2020-11-29 15:13:49 1203

原创 数据结构之串练习

串的练习题(1)DS串应用—最长重复子串题目描述求串的最长重复子串长度(子串不重叠)。例如:abcaefabcabc的最长重复子串是串abca,长度为4。输入测试次数tt个测试串输出对每个测试串,输出最长重复子串长度,若没有重复子串,输出-1.样例输入3abcaefabcabcszu0123szuszuabcefg样例输出43-1做法一:利用kmp算法,取next数组中的最大值#include <iostream>#include <stri

2020-11-24 16:56:49 1076

原创 数据库之函数依赖及其定理

一、函数依赖定义:设R(U)R(U)R(U)是属性集合U={A1,A2,...,An}U = \{A_1, A_2, ..., A_n\}U={A1​,A2​,...,An​}上的一个关系模式,X,YX, YX,Y是UUU上的两个子集,若对R(U)R(U)R(U)的任意一个可能得关系rrr,rrr中不可能有两个元组满足在XXX中的属性值相等而在YYY中的属性值不等,则称“XXX函数决定YYY”或“YYY函数依赖于XXX”,记为X→YX \rightarrow YX→Y。简单来说,函数依赖就是两个属

2020-11-22 10:02:40 1021

原创 数据库之关系范式

一、关系的第一范式定义:关系模式R(U)R(U)R(U)中关系的每个属性都是不可分的数据项,则称R(U)R(U)R(U)属于第一范式,记为R(U)∈1NFR(U) \in 1NFR(U)∈1NF。注意:1NF1NF1NF要求关系中不能有复合属性、多值属性及其组合。举例:下图中的复合属性name、多值且复合的属性enrollment导致关系Student不属于1NF1NF1NF。非1NF1NF1NF转化为1NF1NF1NF的方法方法一:将复合属性拆分成多个不可再分的子属性,构成新的关系

2020-11-22 09:55:26 2529

原创 KMP算法的实现与理解

KMP算法实现过程及含义理解1. KMP算法的用处在字符串的模式匹配中,朴素算法寻找子串首次出现位置会出现回溯过程,为了降低时间复杂度,引入KMP算法。KMP算法是通过移动模式串来跟主串进行匹配的,因此时间复杂度是线性的,没有回溯的过程。2. KMP算法的实现(1)先附上KMP主算法的代码:int KMP(string s, string t, int pos, int next[]{//s为主串,t为模式串,pos为开始查找位置,next数组保存模式串每个字符失配时应该重新开始的位置//po

2020-10-28 12:49:59 268 1

原创 Java学习笔记——String

String的相关用法1.创建String对象// 第一种String s = new String("Hello");// 第二种String s;Scanner in = new Scanner(System.in);/* s 通过输入得到 */2.String的输入// 第一种以空格为分隔符,读入分隔符之前的字符串s = in.next();// 第二种以回车为结束标志,读入回车前的字符串s = in.nextLine();3.String的比较这里需要注意的是,使用

2020-10-06 16:23:59 72

原创 指针数组建立之抽象基类

抽象基类中建立指针数组的注意点:这个可以归结到指针的知识点,即区分清楚用指针创建一维和二维数组时到底代表了什么。在类这个范围的限制下,又有其独特的含义。1.一维数组建立时,数组每个元素都代表了一个数组类型的数据。int *p = new int[2];在这里p[0],p[1]都是一个int型的数据。放到类中来讲,建立一个类的一维数组实际上就是建立了多个类对象。class Circle{ double radius;public: Circle(double r = 0) : radi

2020-08-27 10:30:51 821

原创 前端JS学习笔记(1)

闭包的触发和解决1.触发情况:在函数内部还有函数,并且内部的函数被保存到外部时会发生闭包。2.用一个简单的例子来展示:<script> function test() { var arr = []; for(var i = 0; i < 10; i ++){ arr[i] = function (){ document.write(i + ' '); } } return ar

2020-08-21 23:25:01 125

原创 C++在运行时出现Trace Breakpoint Trap

C++在运行时出现Trace Breakpoint Trap异常遇到的一种情况是:在构建类对象时动态创建了一个数组,但是在使用过程中超过了创建的范围,所以报错会在析构函数delete指针时产生。

2020-07-30 18:35:29 7342

原创 C++模板笔记

C语言的变量必须先声明后使用。由于数据类型的不同,很多相同的处理得为它们设置不同的副本。例如:int findMax(int a, int b){ return (a > b) ? a : b;}double findMax(double a, double b){ return (a > b) ? a : b;}模板的引入就是为了类型的参数化。函数的形参数据类型可变,称为函数模板,实际上代表了一组函数。相似地,类模板的数据成员类型也是可变的。函数模板:使用条.

2020-07-02 11:38:59 104

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除