
【数据结构】
WangMeow
这个作者很懒,什么都没留下…
展开
-
【ACM-ICPC 2018 沈阳赛区网络预赛】B. Call of Accepted ----中缀表达式计算
题目传送门题意:给你一个表达式由+,-,*,d,( ),组成。运算符左边的元素>=0,右边的元素>=1其中d的运算规则是,比如3d6,指3次掷6面体骰子,出现的数值为[1,6]。现在让你求表达式的最大和最小做法:经典的中缀表达式转后缀表达式(逆波兰式)算法:复习复习~中缀表达式 —> 后缀表达式1. 数字:直接输出2. 运算符:如果栈顶运算符的优先级&g...原创 2018-10-29 21:05:35 · 168 阅读 · 0 评论 -
[SDUT](2138)图结构练习——BFSDFS——判断可达性 ---DFS(图)
图结构练习——BFSDFS——判断可达性Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军原创 2017-08-09 09:59:19 · 274 阅读 · 0 评论 -
[SDUT](3469)深度优先搜索练习之神奇的矩环 ---DFS(图)
深度优先搜索练习之神奇的矩环Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description小鑫的女朋友被魔王抢走了!魔王留给小鑫一张n*m大的表,上面有各种各样的颜色,用A-Z这26个字母来表示。魔王留给他一个任务,如果小鑫可以在这张表中找出任意一个长度大于1原创 2017-08-11 19:31:54 · 593 阅读 · 0 评论 -
[SDUT](2449)走迷宫 ---DFS(图)
学习新知:DFS算法,根据题意,从起点(1,1)从上、下、左、右四个方向搜索,任一线路到达(n,m),累计变量sum++,还有要注意递归结束后,要消除标记,因为一个顶点可能要被重复走过。AC代码:#include#includeusing namespace std;int mmap[10][10];int vis[10][10];int dirx[]={1,-1,0,0};//原创 2017-08-12 09:08:59 · 229 阅读 · 0 评论 -
[SDUT](1269)走迷宫 ---DFS(图)
走迷宫Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description有一个m*n格的迷宫(表示有m行、n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,输入这m*n个数据和起始点、结束点(起始点和结束点都是用两个数据来描述的,分别表示这个点的行原创 2017-08-12 14:38:43 · 281 阅读 · 0 评论 -
[SDUT](3344)数据结构实验之二叉树五:层序遍历
Problem Description已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。 Input输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。 Output输出二叉树的层次遍历序列。 Example Input2 abd,,eg,,,原创 2017-11-14 19:50:08 · 294 阅读 · 0 评论 -
[SDUT](3343)数据结构实验之二叉树四:(先序中序)还原二叉树
Problem Description给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。 Input输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。 Output输出一个整数,即该二叉树的高度。 Example Input9原创 2017-11-14 19:47:53 · 281 阅读 · 0 评论 -
[SDUT](2136)数据结构实验之二叉树的建立与遍历 ---- 二叉树
Problem Description已知一个按先序序列输入的字符序列,如abc,,de,g,,f,,,(其中逗号表示空节点)。请建立二叉树并按中序和后序方式遍历二叉树,最后求出叶子节点个数和二叉树深度。 Input输入一个长度小于50个字符的字符串。 Output输出共有4行: 第1行输出中序遍历序列; 第2行输出后序遍历序列; 第3行输出叶子节点个数; 第4行输出二叉树深度原创 2017-11-12 20:40:30 · 196 阅读 · 0 评论 -
[SDUT](3341)数据结构实验之二叉树二:遍历二叉树 ---- 二叉树
Problem Description已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。 Input连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。 Output每组输入数据对应输出2行: 第1行输出中序遍历序列; 第2行输出后序遍历序列。 Example Inputa原创 2017-11-12 19:10:02 · 201 阅读 · 0 评论 -
[SDUT](2133)数据结构实验之栈三:后缀式求值 ---栈
Problem Description对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。 Input输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。 Output求该后缀式所对应的算术表达式的值,并输出之。 Example Input59*684/-3*+# Example Output57 Hint基本操作数都是一位正整数原创 2017-09-21 18:46:51 · 233 阅读 · 0 评论 -
[SDUT](3334)数据结构实验之栈七:出栈序列判定 ---栈
Problem Description给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次。输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序列。 例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个出栈序列,但4,3,5,1,2就不可能是该序列的出栈序列。假设压入栈的所有数字均不相等。原创 2017-09-21 17:41:39 · 276 阅读 · 0 评论 -
[SDUT](2134)数据结构实验之栈四:括号匹配 ---栈
Problem Description给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。 Input输入数据有多组,处理到文件结束。 Output如果匹配就输出“yes”,不匹配输出“no” Example Inputsin(20+10) {[}] Example Outputyes原创 2017-09-20 16:21:03 · 242 阅读 · 0 评论 -
[SDUT](2087)离散事件模拟-银行管理 ---队列
Problem Description现在银行已经很普遍,每个人总会去银行办理业务,一个好的银行是要考虑 平均逗留时间的,即: 在一定时间段内所有办理业务的人员逗留的时间的和/ 总的人数。逗留时间定义为 人员离开的时间减去人员来的时间。银行只有考虑了这一点,我们在办理业务的时候,才不会等太多的时间。 为了简化问题,我们认为银行只有一号窗口和二号窗口可以办理业务 ,并且在时间范围是12<=time原创 2017-09-25 17:37:03 · 286 阅读 · 0 评论 -
[SDUT](2112 && 1139)数据结构实验之链表七:单链表中重复元素的删除 ---链表操作(线性表)
数据结构实验之链表七:单链表中重复元素的删除Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个)。Input第一行输入元素个原创 2017-09-09 10:42:27 · 257 阅读 · 0 评论 -
[SDUT](1138)数据结构上机测试2-1:单链表操作A ---链表操作(线性表)
数据结构上机测试2-1:单链表操作ATime Limit: 1000MS Memory Limit: 4096KBSubmit Statistic DiscussProblem Description输入n个整数,先按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据m,将单链表中的值为m的结点全部删除。分别输出建立的初始单链表和完成删除后的单链表。I原创 2017-09-08 17:12:10 · 275 阅读 · 0 评论 -
[SDUT](2117)数据结构实验之链表二:逆序建立链表 ---链式存储(线性表)
数据结构实验之链表二:逆序建立链表Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description输入整数个数N,再输入N个整数,按照这些整数输入的相反顺序建立单链表,并依次遍历输出单链表的数据。Input第一行输入整数N;;第二行依次输入N个整原创 2017-09-08 15:26:23 · 369 阅读 · 0 评论 -
[SDUT](2116)数据结构实验之链表一:顺序建立链表 ---链式存储(线性表)
数据结构实验之链表一:顺序建立链表Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。Input第一行输入整数的个数N;第二行依次输入每个整数。O原创 2017-09-08 14:41:31 · 307 阅读 · 0 评论 -
[SDUT](3324)顺序表应用1:多余元素删除之移位算法 ---顺序存储(线性表)
顺序表应用1:多余元素删除之移位算法Time Limit: 1000MS Memory Limit: 650KBSubmit Statistic DiscussProblem Description一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同原创 2017-09-06 19:58:08 · 309 阅读 · 0 评论 -
[SDUT](3361) 数据结构实验之图论四:迷宫探索 ---DFS(图)
数据结构实验之图论四:迷宫探索Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description有一个地下迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关;请问如何从某个起点开始在迷宫中点亮所有的灯并回到起点?Input原创 2017-08-08 10:19:23 · 368 阅读 · 0 评论 -
[SDUT](2107) 图的深度遍历 ---DFS(图)
图的深度遍历Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。Input输入第一行为整数n(0 Output输出有n原创 2017-08-07 22:17:12 · 412 阅读 · 0 评论 -
[BZOJ](4260)Codechef REBXOR ---- 0-1字典树+DP★
题目传送门做法:需要用到异或前缀和,即异或前缀和与普通前缀和差不多,它满足sum[l] + sum[l+1] + sum[l+2] +……+sum[r] = sum[r]^sum[l-1] 所以我们想要求前i个数中任意区间的异或最大值要怎么做呢? 我们可以讲异或前缀和插入字典树,每次在字典树查找与【当前异或前缀和】异或 最大的 前缀和 就是答案。 仔细想想为什么嘞~ 因为查询出来的结...原创 2018-10-04 10:54:17 · 175 阅读 · 0 评论 -
[HDU](5536)Chip Factory ---- 0-1字典树★
题目传送门Hint: 2015ACM/ICPC亚洲区长春站-重现赛做法:0-1字典树模板题,因为题目中要求,i,j,k是不同的,所以当我们选取两个数求和找与这个值异或最大的数时,要先把这俩求和的数从字典树中删掉,求完和,再增加。AC代码:#include<bits/stdc++.h>#define IO ios_base::sync_with_s...原创 2018-10-03 21:17:19 · 150 阅读 · 0 评论 -
[POJ](3321)Apple Tree ---- 树形结构转线性区间+树状数组
题目传送门做法:这个题可以作为树状数组的好题了~ 难点不在于树状数组,而在于转换问题。 数据结构不熟,看了其他人的博客,才知道可以通过先序遍历这棵树,进行转换。 比如我现在建立一棵树: 1 ---- 2 1 ---- 3 2 ---- 4 2 ---- 5 4 ---- 6 3 ---- 7 3 ---- 8 然后从根节点1,先序遍历 次序为:1 2 4 6 5 3...原创 2018-09-17 15:39:28 · 199 阅读 · 0 评论 -
Codeforces Round #504 ---- C. Bracket Subsequence(栈)
题目链接没想到这道题竟然是我感觉到最简单的……做法:利用栈,栈存储的是字符串的下标是"("时,对应的下标入栈。是")"时,判断栈顶元素是否匹配,是的话,把他俩的下标,直接用数组哈希存储一下,即 pos[i] = i,然后把"("的下标弹出去最后遍历哈希数组输出k个字符即可AC代码:#include<bits/stdc++.h>#define rep(i,...原创 2018-08-18 10:41:08 · 164 阅读 · 0 评论 -
[洛谷](P1631)序列合并 ---- 优先级队列+思维
题目链接思路: 我们会发现题意要求的是最小的N个数,1e5直接暴力肯定会TLE。这时候换种思路。我们把a和b两个序列从小到大排序,发现一定是a[i]+b[j] < a[i]+b[j+1]所以可以用优先级队列维护一下枚举一下,把大和的弹出去,否则从内层跳出,因为后面的就一定不会出现小的和了(根据上面的不等式)最后逆序输出即是答案。 AC代码:#incl...原创 2018-08-10 19:20:20 · 275 阅读 · 0 评论 -
Codeforces Round #486 (Div. 3) ---- C. Equal Sums (map的应用)
题目链接:http://codeforces.com/contest/988/problem/C题意: 给你k个序列,让你从中选两个序列,分别从两个序列中删除一个元素使得两个序列的和相等。输出删除的两个元素分别在第几个序列的第几个思路: 一开始写了一个极复杂的容器混合QAQ(不说了) 然后发现map的count可以很好地处理这个题。 来源: map和set两种容器的底层结构都是红黑树...原创 2018-06-14 22:56:23 · 121 阅读 · 0 评论 -
[51Nod](1081)子段求和 ---- 树状数组
给出一个长度为N的数组,进行Q次查询,查询从第i个元素开始长度为l的子段所有元素之和。 例如,1 3 7 9 -1,查询第2个元素开始长度为3的子段和,1 {3 7 9} -1。3 + 7 + 9 = 19,输出19。Input第1行:一个数N,N为数组的长度(2 <= N <= 50000)。 第2 至 N + 1行:数组的N个元素。(-10^9 <= N[i]...原创 2018-04-12 17:39:06 · 167 阅读 · 0 评论 -
[51Nod](1095)Anigram单词 ---- Hash(map)+排序
一个单词a如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的Anigram,例如单词army和mary互为Anigram。现在给定一个字典,输入Q个单词,从给出的字典中找出这些单词的Anigram。Input第1行:1个数N,表示字典中单词的数量。(1 <= N <= 10000) 第2 - N + 1行,字典中的单词,单词长度 <= 10。 第N...原创 2018-04-04 20:06:05 · 282 阅读 · 0 评论 -
[51Nod](1094)和为k的连续区间 ---- Hash(Map)优化+ 前缀和
一整数数列a1, a2, … , an(有正有负),以及另一个整数k,求一个区间[i, j],(1 <= i <= j <= n),使得a[i] + … + a[j] = k。Input第1行:2个数N,K。N为数列的长度。K为需要求的和。(2 <= N <= 10000,-10^9 <= K <= 10^9) 第2 - N + 1行:A[i...原创 2018-04-09 20:49:07 · 165 阅读 · 0 评论 -
[FZU](2150)Fire Game ---bfs
Problem DescriptionFat brother and Maze are playing a kind of special (hentai) game on an N*M board (N rows, M columns). At the beginning, each grid of this board is consisting of grass or just empty原创 2017-10-01 17:58:03 · 206 阅读 · 0 评论 -
[POJ](3984)迷宫问题 ---BFS+队列模拟(图+队列模拟)***
迷宫问题Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 24415 Accepted: 14241Description定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0原创 2017-08-22 16:50:27 · 227 阅读 · 0 评论 -
[HDU](1782)逃离迷宫 ---BFS(图)
逃离迷宫Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有些地方是障碍,她必须绕行,从迷宫的一个位置,只能走到与它相邻的4个位置中,当然在行走过程中,gloria不能走到迷宫外面去。令人头痛的是,gloria是个没什么方向感原创 2017-08-16 20:48:07 · 363 阅读 · 0 评论 -
[SDUT](3468)广度优先搜索练习之神奇的电梯 ---BFS(图)
广度优先搜索练习之神奇的电梯Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description有一座已知层数为n的高楼,这座高楼的特殊之处在于只能靠电梯去上下楼,所以要去到某一层要非常耽误时间,然而更悲哀的是,这座高楼的电梯是限号的,小鑫最开始的时候在1层,他想去第x原创 2017-08-11 12:29:53 · 281 阅读 · 0 评论 -
[POJ](3278)Catch That Cow ---BFS(图)
Catch That CowTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 96514 Accepted: 30289DescriptionFarmer John has been informed of the location of a fugitiv原创 2017-08-09 20:18:28 · 180 阅读 · 0 评论 -
[SDUT](2139)图结构练习——BFS——从起始点到目标点的最短步数 ---BFS(图)
第一行包含两个整数n,m(分别代表n个隘口,这些隘口之间有m个通道)。下面m行每行包含两个整数a,b;表示从a出发有一条通道到达b隘口(注意:通道是单向的)。 Output 如果天灾军团可以不修建任何通道就到达1号隘口,那么输出最少经过多少通道,否则输出NO。 Example Input2 11 22 12 1Example O原创 2017-08-09 16:25:37 · 348 阅读 · 0 评论 -
[SDUT](2141)数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历 ---BFS(图)
数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)原创 2017-08-08 20:51:27 · 1012 阅读 · 0 评论 -
[SDUT](1130)数据结构上机测试1:顺序表的应用 ---顺序存储(线性表)
数据结构上机测试1:顺序表的应用Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description在长度为n(nInput第一行输入表的长度n;第二行依次输入顺序表初始存放的n个元素值。Output第一行输出完成多余元素删除以后顺序原创 2017-09-06 20:03:38 · 280 阅读 · 0 评论 -
[SDUT](2053)数据结构实验之链表九:双向链表 ---双向链表(线性表)
数据结构实验之链表九:双向链表 Problem Description 学会了单向链表,我们又多了一种解决问题的能力,单链表利用一个指针就能在内存中找到下一个位置,这是一个不会轻易断裂的链。但单链表有一个弱点——不能回指。比如在链表中有两个节点A,B,他们的关系是B是A的后继,A指向了B,便能轻易经A找到B,但从B却不能找到A。一个简单的想法便能轻易解决这个问题——建立双向链表。在双向链表原创 2017-09-16 10:51:11 · 227 阅读 · 0 评论 -
[HDU](1686)Oulipo ---KMP(串)★
OulipoProblem DescriptionThe French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e'. He was a member of the Oulipo group. A quote from the book:Tout ava...原创 2017-08-24 17:05:03 · 189 阅读 · 0 评论 -
[HDU](1285)确定比赛名次 ---拓扑排序+STL优先级队列(图)
确定比赛名次Problem Description有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。 Input输入有若干组,每组中的第...原创 2017-08-14 15:13:11 · 289 阅读 · 0 评论