自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 收藏
  • 关注

原创 MySQL数据库详细总结

文章目录SQL简介基础查询条件查询SQL简介SQL 是用于访问和处理数据库的标准的计算机语言。什么是SQL?SQL 指结构化查询语言SQL 使我们有能力访问数据库SQL 是一种 ANSI (美国国家标准化组织) 的标准计算机语言SQL能干啥?SQL 面向数据库执行查询SQL 可从数据库取回数据SQL 可在数据库中插入新的记录SQL 可更新数据库中的数据SQL 可从数据库删除记录SQL 可创建新数据库SQL 可在数据库中创建新表SQL 可在数据库中创建存储过程SQL 可在

2022-01-01 17:34:06 1489 1

原创 HTML5 + CSS3

文章目录基础语法文本样式内容持续更新中…基础语法<!-- html5 --><!DOCTYPE html><!-- 去掉变成HTML --><!-- 网页的根标签 --><html lang="en"><!-- 头部标签 --><head> <!-- 配置网页信息 --> <meta charset="UTF-8"> <!-- 配置协议 -->

2021-04-10 11:42:21 2315 4

原创 C++学生信息管理系统 Map实现

1、 作品的功能描述:实现一个学生信息管理系统,通过对学生信息类中的成员进行增、删、改、查从而实现对数据的操作,除此之外,还可以显示学生信息,按分数排序信息,并通过文件的读入读出实现学生信息的存储和读出。子函数操作细节说明:(1) 插入学生信息通过map容器中的insert()函数进行学生信息的插入,使用二元组作为参数,first为学生姓名索引,second为学生个人信息类(2) 删除学生信息使用map中的erase()函数对学生信息进行删除,如果学生存在于map中,删除成功。(3) 修改学生

2020-12-24 11:13:29 1189

原创 1024

--------------------------------1024节日快乐---------------------------------------

2020-10-24 10:30:11 847

原创 对比DFS、BFS求连通块问题

许多连通块问题既可以用BFS求解也可以用DFS求解,两者各有优缺点。BFS求解:可以求出最短路或者判断两者是否连通,不存在爆栈的风险,但空间相对用的多一些而且代码相对来说繁琐一些。DFS求解:DFS代码简洁,相对好写一些,但存在爆栈的风险,而且不能求出最短路。

2020-07-16 12:01:31 743 1

原创 双向BFS(字串变换)

双向搜索——从初态和终态出发各搜索一半状态,产生两棵深度减半的搜索树,在中间交会、组合成最终的答案。双向BFS——从起始状态、目标状态分别开始,两边轮流进行,每次各扩展一整层,当两边各自有一个状态在记录数组中发生重复时,就说明这两个搜索过程相遇了,可以合并得出起点到终点的最小步数字串变换双向BFS的时间复杂度分析:假设字符串长度为L,替换规则一共N个,最坏情况下,使用N种规则,总共有LN种扩展方式,题目要求最多10步,则从起点和终点最多会扩展5步,所以搜索空间是2(LN) ^ 5#include

2020-07-14 10:56:08 320

原创 双端队列BFS(电路维修 deque)

基本的广搜每次扩展都记一步,通过逐层搜索解决了求起始状态到每个状态的最少步数问题。等价于在一张边权均为1的图上执行BFS,每个状态在第一次被访问并入队时,计算出的步数即为所。当图上的边权是1、0两种状态时,就需要用到双端队列来保证队列的两段性和单调性。

2020-07-13 09:17:35 415 2

原创 最小步数模型(魔板 - BFS)

前言:本文简单介绍unordered_map的一些用法和原理以及最小步数模型问题的求解

2020-07-12 10:01:13 400

原创 多源BFS(图的广搜)

单源BFS就是树的广搜思路,把根节点入队,然后一层层的遍历多源BFS就是图的广搜思路,可以多个源点入队,为防止某个点入队多次,需要标记,多源BFS一般用于解决下面这种多源点问题,会提高代码执行效率。

2020-07-11 19:32:43 718

原创 Flood Fill(漫水法)+ 最短路模型

文章目录对于一张地图,使用Flood Fill就可以找到最大连通子图,可以使用BFS、DFS来实现,这里使用BFS演示。可以在线性时间复杂度(O(nm))内,找到某个点所在的连通块(所有边权重相等)例题:城堡问题图1是一个城堡的地形图。请你编写一个程序,计算城堡一共有多少房间,最大的房间有多大。城堡被分割成 m∗n个方格区域,每个方格区域可以有0~4面墙。注意:墙体厚度忽略不计。输入格式第一行包含两个整数 m 和 n,分别表示城堡南北方向的长度和东西方向的长度。接下来 m 行,

2020-07-06 17:55:18 993 2

原创 Java基础学习必备(2)(继承、多态、修饰符、抽象类、接口)

Java基础看这里

2020-06-26 17:35:14 272

原创 Java基础学习必备(1)(基础知识、Debug、面向对象基础、集合基础)

Java基础看这里

2020-06-26 17:34:15 316

原创 Python习题练习 + 简单语法总结

之前学了语法知识,很长时间过去了,不做题跟本啥也想不起来,此博客主要为了 **回忆语法** ,所以挑了一些水题来练习。

2020-06-17 21:39:51 445 4

原创 Floyd打印最短路径及选址问题

前言:在求任意两点间的最短路问题中,图一般较为稠密,使用Floyd算法可以在O(N ^ 3)的时间实现。当然也可以把每个点作为起点,求解N次单源最短路径问题,但较为复杂。这里介绍Floyd算法以及使用Floyd算法打印路径和解决选址问题

2020-05-07 22:41:22 1343

原创 Prim算法、Kruskal算法

文章目录Prim算法Kruskal算法主要内容:Prim算法最小生成树对应的问题一般都是无向图,最小生成树所构成的图总边权之和最小,但不能是环,否则不能称之为"最小"。Prim算法是求解最小生成树的算法之一,适用于稠密图,Prim算法和Dijkstra算法步骤很相似,不同的是Dijkstra需要更新所有邻居到起点的距离,也就是"松弛操作",但Prim不需要,只需要把距离集合最近的点加...

2020-04-01 17:20:15 3653

原创 二分图(染色法、匈牙利算法)

文章目录染色法判定二分图匈牙利算法主要内容:染色法判定二分图二分图:把无向图分为两个集合V1, V2,所有边都在V1和V2之间,V1或V2内部没有边。一个图是否为二分图,一般用"染色法"判断。例如:(1、2在一个集合,3,4在一个集合)染色法:用两种颜色(可以赋值为1、2)对所有顶点进行染色,要求一条边所连的两个相邻顶点的颜色不同,颜色结束后,若所有相邻顶点的颜色都不相同,...

2020-04-01 09:58:03 613

原创 拓扑排序

文章目录算法分析拓扑排序模板算法分析拓扑排序:把事情看成图的点,把先后关系看成有向边,问题转化为在图中求一个有先后关系的排序,就是拓扑排序。拓扑排序用BFS和DFS均可实现。如何排序?拓扑排序需要根据点的入度和出度,一个点的入度和出度体现了这个点的先后关系。如果一个点的入度等于0,说明它是起点,是排在最前面的。如果它的出度等于0,说明排在最后面。因为优先级相同的数的存在,拓扑排序可能不止...

2020-03-31 21:30:28 263

原创 走迷宫(BFS)

文章目录数组模拟queuepython打印路径题目描述给定一个n*m的二维整数数组,用来表示一个迷宫,数组中只包含0或1,其中0表示可以走的路,1表示不可通过的墙壁。最初,有一个人位于左上角(1, 1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角(n, m)处,至少需要移动多少次。数据保证(1, 1)处和(n, m)处的数字为0,且一定至...

2020-03-16 21:10:31 443 2

原创 哈希表

文章目录一般哈希拉链法开放寻址法字符串哈希一般哈希哈希表是一种提供了快速插入和查找操作的数据结构,一般哈希可以用两种方法来做,拉链法和开放寻址法。拉链法在哈希表中的每个单元格内插上链表,链表中存储数据本身,查找时只需要找到数据的映射,也就是哈希值例题维护一个集合,支持如下几种操作:“I x”,插入一个数x; “Q x”,询问数x是否在集合中出现过; 现在要进行N次操作,对于每个询问...

2020-03-11 20:25:17 148

原创 小球下落(二叉树编号)

有一颗二叉树,最大深度为D,且所有叶子的深度都相同,所有结点从上到下从左到右编号为1,2,3,…,2 ^ D - 1.在结点1处放一个小球,它会往下落。每个内结点上都有一个开关,初始全部关闭,当每次有小球落到一个开关上时,状态都会改变。当小球到达一个内结点时,如果该结点上的开关关闭,则往左走,否则往右走,直到走到叶子结点。 ,...

2020-03-06 13:48:07 518

原创 解决Python连接MySQL时出现的问题

终于让python和MySQL连接上了,花了两天时间才成功建立连接,下面是我遇到问题。在安装MySQL时候要注意有一个选择,如果你选择了Use Strong Password Encryption for Authentication,就会强密码加密,建不成数据库。所以要将Use Strong Password Encryption for Authentication改为Use Legacy ...

2020-03-04 19:28:36 3917 3

原创 并查集_易懂

并查集主要用于处理不相交集合的合并问题。并查集:将编号为1 ~ n的n个的对象划分为不相交集合,在每个集合中,选择其中某个元素代表所在集合,在这个集合中,并查集的操作有初始化、合并、查找。(1)初始化:定义数字int s[]是以结点i为元素的并查集,刚开始每个点属于独立的集合,且以元素的值表示它的集s[i](2)合并:把两个集合合并为一个集合,以此形成一棵搜索树(3)查找:查找元素是...

2020-03-04 17:23:11 229

原创 Python RegEx(正则表达式)

正则表达式是一个特殊的字符序列,可以帮助操作者更方便的检查一个字符串是否与某种模式匹配

2020-03-01 17:58:38 1234

原创 抽屉原理(鸽巢原理)

鸽巢原理,也叫抽屉原理,内容很简单,n + 1只鸽子飞进了n个鸽巢,则至少有一个鸽巢有两个鸽子。原理是基本的组合原理,但能解决很多有趣的问题,得到有趣的结论,例如:在1500人中,至少5人生日相同;n个人相互握手,一定有两人握手次数相同;盒子里有10只黑袜子、12只蓝袜子,假设只能拿一次,只要3只就可以拿到相同颜色的袜子。例题吃糖果Problem DescriptionHOHO,终于从...

2020-02-29 23:09:24 1093

原创 用数组实现字典树

文章目录Trie字符串统计HUD1251 统计难题若要在n个字符串中查找某个字符串,如果使用暴力方法就需要逐个匹配字符串,复杂度是O(n * m),m是字符串平均长度。还有一种比较快的方法就是字典树,像查单词那样,一次找一个字母,查找任意单词,复杂度为O(m),m是查询或插入字符串的长度。字典树的基本性质:根结点不包含字符,其余每结点都有一个字符从根结点到这一路径末尾的所有点连起来就是该...

2020-02-26 19:27:37 1764 5

原创 L1-009 N个数求和 (20分)(分数求和)

本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 …给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。输出格式:输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写...

2020-02-24 14:18:43 2332

原创 L1-039 古风排版 (20分)

古风排版中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。输入样例:4This is a test case输出样例:asa ...

2020-02-24 09:41:32 384

原创 L1-059 敲笨钟 (20分)

敲笨钟微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性,还会糟改几句古诗词。其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰:“寻章摘句老雕虫,晓月当帘挂玉弓”,其中“虫”(chong)和“弓”(gong)都压了“ong”韵。于是这句诗就被糟改为“寻章摘句老雕虫,晓月当帘敲笨钟”。现在给你一大堆古...

2020-02-23 21:12:08 1387

原创 八皇后问题(DFS和递归)

八皇后问题:在棋盘上放置8个皇后,是它们互不攻击,此时每个皇后的攻击范围为同行同列和同对角线,所以不能让它们处于同行、同列和同对角线。输出所有情况的棋盘。由于很多子结点不符合条件,可以在递归时候中途停止并返回,这个思路就是回溯,在回溯中用于减少子结点扩展的部分叫剪枝。解决此问题的关键就是如何递归和回溯,难度主要在于扩展子结点的时候如何构造停止递归并返回的条件。解题思路就是按行枚举Q, ...

2020-02-23 18:13:32 2986 1

原创 L1-006 连续因子 (20分)

一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数 N(1<N<2 ​31 ​​ )。输出格式:首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……...

2020-02-23 15:42:04 2644

原创 L1-020 帅到没朋友 (20分)

使用一维数组记录是否有朋友,下标为ID,数组记为1则有朋友,0则没朋友当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。输入格式:输入第一行给出一个正整数N(≤100),是已知朋友圈的个数;随后N行,每行首先给出一个正整数K(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从0...

2020-02-23 15:34:10 172

原创 竖式问题

文章目录竖式乘法竖式除法竖式乘法竖式问题。找出所有形如 abc∗de (三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但所写程序中应该输出空格,而非小数点)。样例输入:2357样例...

2020-02-22 21:39:55 467

原创 L1-046 整除光棍 (20分) 竖式除法

整除光棍这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最...

2020-02-22 21:36:25 897 1

原创 开灯问题

开灯问题:有n盏灯,编号为1-n。第1个人把所有的灯都打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关掉),以此类推,一共有k个人,问最后有哪些等开着?输入n和k,输出开着的灯的编号。k<<n<<100.**这是一个数组的简单应用。C语言:#include<stdi...

2020-02-22 16:39:51 1666 2

原创 蛇形填数

蛇形填数在n×n方阵里填入1,2,3,…,n*n,要求填成蛇形。例如,n=4时方阵为:10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4这道题是二维数组的应用,以n = 4 为例,从1开始依次填写,开始x = 0, y = n - 1,运动轨迹为:三下、三左、三上、两右、两下、左、上。走到不能填就拐弯,刚开始把所有各自初始化为0,比较容易判断。...

2020-02-22 16:39:11 2321

原创 L1-002 打印沙漏 (20分)

这道题的关键就在确定行数,17 = (3 + 5)* 2 + 1,最大奇数即为行数,如果sum * 2 + 1 == n,最大奇数即为行数,如果 > n ,让最大奇数-2,返回上一个奇数, 剩余的字符用n - (sum * 2 + 1),然后就输出部分,下面的代码中有详细的注释,这道题我真没想出来,看了大佬的代码。#include<iostream>using names...

2020-02-22 09:10:25 323

原创 L1-056 猜数字 (20分)

这道题比较好想,但这道题无论是整型数组还是字符串数组都不能越界,也就是不能超过输入的N,平常数组都开的大一些,这道题大一点就报错,需要注意一下题目信息的小细节。一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。输入格式:输入在第一行给出一个正整数N(≤10 ​4 ​​ )。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字...

2020-02-22 09:08:54 955

原创 L1-025 正整数A+B (15分)

题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。输入格式:输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。注意:我们把输入中出现的第1个空格认为是A和B的分隔。题目保证至少存在一个空格,并且B不是一个空字符串。输出格式...

2020-02-20 18:33:28 930 6

原创 L1-044 稳赢 (15分)

题解:这道题需要注意的是平局细节的处理,使用一个计数器 t ,如果使用(t - 1)%k = 0的话,需要考虑t = 1的情况,如果使用t % (k + 1)的话就避免了t = 1的判断.大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。输入格式:...

2020-02-20 16:47:04 1700

原创 L1-033 出生年 (15分)

这道题有多个解法,当然首选最简易的了以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。输入格式:输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1,3000]之间,n可以是2、或3、或...

2020-02-20 16:46:46 602

空空如也

空空如也

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

TA关注的人

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