自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DFS与八皇后问题

DFS与八皇后问题(P1219)题目描述一个如下的 6×66 \times 66×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列 2 4 6 1 3 5来描述,第 iii 个数字表示在第 i 行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是棋子放置的一个解。请编一个程序找出所有棋子放置的解。并把它们以上面的序列方法输出,解按字典顺序排列。请

2022-01-18 16:52:42 137

原创 CentOS7安装教程(图文)

centos7安装软件与镜像准备软件:VMware Workstation镜像文件:CentOS-7-x86_64-DVD-2009.iso注:镜像文件可以到CentOS官网下载https://www.centos.org/download/可根据自己的需求下载最新版本或其他版本。VMware安装操作1. 打开Vmware,文件->新建虚拟机->自定义(高级)2. 硬盘兼容性->默认(Workstation 15.x)3. 稍后安装操作系统4.客

2021-11-05 14:35:31 728

原创 逆序对(树状数组)

洛谷P1908-逆序对(树状数组)一、题目描述猫猫 TOM 和小老鼠 JERRY 最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM 老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中 ai>aja_i>a_jai​>aj​ 且 i<j 的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。注意序列中可能有重复数字。Update:数据已加强。

2021-07-14 15:22:55 356

原创 小鱼比可爱(树状数组)

洛谷P1428-小鱼比可爱(树状数组)一、题目描述人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。输入格式第一行输入一个

2021-07-14 15:20:21 198

原创 树状数组总结

树状数组一、简介解决单点修改,区间查询,单点查询,区间修改等问题的一种数据结构。原理图:二、操作lowbit(int x)表示最低位1的位置,如(12)2(12)_2(12)2​=00001100,我们需要取出的是100,此时可以用到前人的智慧,将12对应的二进制取反加一得到11110100,将两者相与即可取出100,因为在计算机中数组的计算使用的是补码,取反加一操作得到的正是原数的相反数,那么我们的lowbit操作即可表示为x&-x.int lowbit(int x

2021-07-14 15:13:04 92

原创 过河卒(动态规划)

洛谷P1002–过河卒(动态规划)一、题目描述棋盘上 AAA点有一个过河卒,需要走到目标BBB点。卒行走的规则:可以向下、或者向右。同时在棋盘上CCC点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,AAA 点 (0,0)(0, 0)(0,0)、BBB点 (n,m)(n, m)(n,m),同样马的位置坐标是需要给出的。现在要求你计算出卒从 AAA 点能够到达 BBB 点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。–

2021-07-10 21:31:32 6233 8

原创 拓扑排序1

拓扑排序一、简介拓扑排序是对一个有向无环图中所有顶点的排序,使得图中任意两个顶点u和v,若存在一条由u指向v的边,那么,拓扑排序后,顶点u一定在v的前面。二、解析我们使用一个数组来记录每个顶点的入度,用一个二维数组(此处也可以用多个一维数组组成一个类似于Java中的二维数组,例如vector ve[100];)来记录顶点之间的关系,首先将入度为零的点加入队列,然后依次取出一个点,将与其相连的点的入度都减一,若有入度为零的就将其加入队列,输出每次取出的那个点,重复此过程,实现拓扑排序。若要求在同

2021-05-28 17:08:23 499

原创 并查集(应用)

并查集的应用(补充)并查集的基础操作与介绍请看上一篇博客并查集北大POJ平台705题,“发现他,抓住他”。描述一个城市中有两个犯罪团伙A和B,你需要帮助警察判断任意两起案件是否是同一个犯罪团伙所为,警察所获得的信息是有限的。假设现在有N起案件(N<=100000),编号为1到N,每起案件由团伙A或团伙B所为。你将按时间顺序获得M条信息(M<=100000),这些信息分为两类:1 、D[a][b]其中[a]和[b]表示两起案件的编号,这条信息表明它们属于不同的团伙所为2、

2021-05-25 01:14:52 256

原创 并查集

并查集一、并查集的相关操作并查集是一种树形数据结构,它的两种主要操作是:查找、合并。查找(find):确定某个元素处于哪个子集。合并(union):将两个子集合并成一个集合。代码实现初始化initialvoid init(int n){ for(int i=1;i<=n;i++){ fx[i]=i;//每个i都属于一个集合 }}查找(find)int find(int x){ if(fx[x]==x){ return

2021-05-24 15:47:11 121

原创 输入长度不定的一串数字(c++)

输入长度不定的一串数字(c++)描述在屏幕中,输入一行数字,以空格分隔。(数据长度未知)例如:5 5 5 3 5 7 8 9代码实现 vector<int> a;while(scanf("%d",&x)!=EOF&&getchar()!='\n'){ a.push_back(x); mp[x]++;}说明网上还有其他博主的不同版本,但思路是相同的,不过在不同的环境下有些就是无法跳出循环(玄学问题),比如我所遇到的在同样

2021-04-24 14:09:25 1224

原创 中缀表达式转后缀表达式并求值(多位数)

中缀表达式转后缀表达式并求值(多位数)一、问题简述中缀表达式:是一种通用的算术或逻辑公式表示方法,操作符处于操作数的中间。中缀表达式是人们常用的算术表示方法,如3+5*8。后缀表达式(逆波兰表达式):运算符位于两个相应操作数之后,更方便计算机的运算,如3 5 8 * +。为了方便计算机的运算,我们需要把中缀表达式转成后缀表达式。(也可直接计算中缀表达式的值)二、背景题目:中缀表达式的值(北大oj平台)描述人们熟悉的四则运算表达式称为中缀表达式,例如(23+34*45/(5+6+7))。

2021-04-10 01:23:15 2758

原创 去除C程序中的注释

去除C程序中的注释一、问题简述在给出一段c语言代码后,删除其中的注释部分,其余部分不变。C语言中的注释为/**/,不考虑c++中的单行注释//。确保给出的c程序的正确性。二、背景题目描述C程序的注释用/*…*/来表示。请写一个程序,将输入的C程序源代码中的注释去掉,输出去掉注释之后的源代码。用于测试的C代码保证符合语法,不使用C++的//注释语法。注意,C语言不允许出现嵌套注释。具体来说,对于/*/**/"*/",如果不允许嵌套注释,那么它表示字符串"*/";如果允许嵌套注释,它表示一个

2021-04-02 17:20:03 3259 1

原创 出栈序列的合法性

出栈序列的合法性一、问题简述给定一个入栈序列,给出一系列出栈顺序,判断出栈序列是否合法。例如:入栈序列[1,2,3,4],出栈序列[4,3,2,1]合法,[3,4,2,1]合法,[3,1,2,4]不合法。二、算法设计建立一个主栈s1和一个辅助栈s2,将给定的出栈序列反向push到主栈s1。以从1-n的顺序向辅助栈s2逐一push元素:检查s2的栈是否为空且s2栈顶元素与s1的栈顶元素是否相同。若相同就分别pop出s1和s2的栈顶元素直到s2栈空或者s1与s2

2021-03-31 11:46:40 2429 3

空空如也

空空如也

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

TA关注的人

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