数据结构----------
数据结构
米兰的小耳朵
Don't settle. Keep moving.
展开
-
The Unique MST POJ - 1679 奇妙的次小生成树
The Unique MSTTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 32278 Accepted: 11699DescriptionGiven a connected undirected graph, tell if its minimum span原创 2017-10-12 11:24:29 · 279 阅读 · 0 评论 -
无题II HDU - 2236 【二分图+二分答案】
这是一个简单的游戏,在一个n*n的矩阵中,找n个数使得这n个数都在不同的行和列里并且要求这n个数中的最大值和最小值的差值最小。 Input 输入一个整数T表示T组数据。 对于每组数据第一行输入一个正整数n(1<=n<=100)表示矩阵的大小。 接着输入n行,每行n个数x(0<=x<=100)。 Output ...原创 2018-06-12 10:29:11 · 306 阅读 · 0 评论 -
Battle ships HDU - 5093 经典二分图匹配
Battle ships HDU - 5093 http://acm.hdu.edu.cn/showproblem.php?pid=5093注意数组大小, 因为分块所以要将匹配用到的数组开大点#include <bits/stdc++.h>#define in...原创 2018-05-03 20:25:17 · 131 阅读 · 0 评论 -
Divide Groups HDU - 4751
Divide GroupsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2627 Accepted Submission(s): 922Problem Description This year原创 2017-08-25 21:28:37 · 227 阅读 · 0 评论 -
图的深度遍历
blablabla: Depth-First-Search 深度优先,无回溯的DFS就是一条路走到黑的孤独= = thought: 简单模板。。。 Problem Description 请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。Input 输入第一行为整数n(0 < n < 100),表示数据的组数。 对于每组数据,第原创 2017-02-21 20:10:04 · 246 阅读 · 0 评论 -
【单调队列学习】 POJ 2823 FZU 1894
POJ 2823 Sliding Window 首先 这题因为是在神奇的POJ上, 所以C++和G++可能又有某些玄学差别。...原创 2018-06-23 17:04:30 · 168 阅读 · 0 评论 -
数据结构实验之栈与队列七:出栈序列判定 SDUTOJ3334
SDUTOJ3334生活嘛, 总有许多事情是记不住的。比如这道题我又双叒叕忘记了这道题的原理。Problem Description给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次。输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序列。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,原创 2017-10-17 16:15:06 · 612 阅读 · 0 评论 -
Candies SPFA + 栈
CandiesTime Limit: 1500MS Memory Limit: 131072KTotal Submissions: 33447 Accepted: 9392DescriptionDuring the kindergarten days, flymouse was the monitor of his c原创 2017-09-16 08:42:45 · 242 阅读 · 0 评论 -
Danganronpa HDU - 5835 贪心推演出式子 or 优先队列实现贪心
DanganronpaTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 937 Accepted Submission(s): 636Problem DescriptionChisa Yukizome works原创 2017-08-14 21:22:03 · 232 阅读 · 0 评论 -
Rescue HDU - 1242
Rescue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 31959 Accepted Submission(s): 11164Problem Description Angel was caught by the MOLI原创 2017-07-30 17:12:36 · 248 阅读 · 0 评论 -
山峰 2016暑假集训结训赛 by JueChen 栈的维护
山峰Time Limit: 1000MS Memory Limit: 65536KBProblem Description金石山脉有n个山峰,一字排开,从西向东依次编号为1, 2, 3, ……, n。编号为i的山峰高度为hi。每个山峰的高度两两不同小木示从西向东依次爬过这n个山峰,到每一个山峰的山顶的时候,他都会往西边眺望,并且会记录下自己能看到的山峰的个数。(比如原创 2017-07-24 20:42:57 · 337 阅读 · 0 评论 -
数据结构实验之栈六:下一较大值(二)
数据结构实验之栈六:下一较大值(二) Time Limit: 150MS Memory Limit: 8000KB Submit Statistic Problem Description 对于包含n(1<=n<=100000)个整数的序列,对于序列中的每一元素,在序列中查找其位置之后第一个大于它的值,如果找到,输出所找到的值,否则,输出-1。Input 输入有多组,第一行输入t(1原创 2017-02-17 19:45:16 · 252 阅读 · 0 评论 -
数据结构实验之栈二:一般算术表达式转换成后缀式 2132
数据结构实验之栈二:一般算术表达式转换成后缀式 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。Input 输入一个算术表达式,以‘#’字符作为结束标志。Output 输出该表达式转换所得到的后缀原创 2017-02-17 10:16:28 · 463 阅读 · 0 评论 -
最小生成树-- 解析与模板
百度百科1. 最小生成树之prim算法算法简单描述1).输入:一个加权连通图,其中顶点集合为V,边集合为E;2).初始化:Vnew = {x},其中x为集合V中的任一节点(起始点),Enew = {},为空;3).重复下列操作,直到Vnew = V:a.在集合E中选取权值最小的边,其中u为集合Vnew中的元素,而v不在Vnew集合当中,并且v∈V(如果存在有多条满足前述原创 2017-10-12 20:16:26 · 284 阅读 · 0 评论 -
查询线段树 Balanced Lineup POJ - 3264
Balanced LineupTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 56169 Accepted: 26321Case Time Limit: 2000MSDescriptionFor the daily milking, Farme原创 2017-08-23 19:28:23 · 232 阅读 · 0 评论 -
A Simple Problem with Integers POJ - 3468 [成段更新,lazy]
A Simple Problem with IntegersTime Limit: 5000MS Memory Limit: 131072KTotal Submissions: 117033 Accepted: 36387Case Time Limit: 2000MSDescriptionYou have N原创 2017-08-21 20:58:44 · 184 阅读 · 0 评论 -
线段树(数组模拟、结构体模拟) I Hate It HDU - 1754 [my first segement tree ][参考博客推荐]
I Hate ItTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 82290 Accepted Submission(s): 31639Problem Description很多学校流行一种比较的习惯。老师们很原创 2017-08-18 17:21:22 · 679 阅读 · 0 评论 -
并查集理解 【这个比较形象】 附:SDUTOJ 数据结构实验:连通分量个数
已知最早出处:http://blog.csdn.net/dellaserss/article/details/7724401/反正谢谢大牛们...并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程转载 2017-06-19 19:27:24 · 358 阅读 · 0 评论 -
树-堆结构练习——合并果子之哈夫曼树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descrip
树-堆结构练习——合并果子之哈夫曼树Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体原创 2017-06-10 21:09:36 · 1627 阅读 · 0 评论 -
已知中序遍历、后序遍历,求先序遍历
bla: 先码下来再慢慢看把。。 code_source:http://blog.csdn.net/li_jun_09_05/article/details/26407659?utm_source=tuicool&utm_medium=referral 相关思路:http://www.cr173.com/html/18891_1.html 求二叉树的先序遍历 Time Limit: 1000转载 2017-02-23 16:42:29 · 822 阅读 · 0 评论 -
链表基本操作
数据结构实验之链表一:顺序建立链表#include <stdio.h>#include <stdlib.h>struct node{ int data; struct node *next;};void creat(struct node *head, int n){ struct node *tail = head, *p; int x; for(原创 2018-01-18 21:20:36 · 190 阅读 · 0 评论 -
【啊哈!算法】算法8:巧妙的邻接表(数组实现逆序模拟链表)
看书看了好几遍看不进去。然而看了啊哈磊的博客竟然突然看明白了。。。明明都是一样的内容。谢谢作者 啊哈磊。 转自:啊哈磊【啊哈!算法】算法8:巧妙的邻接表之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。转载 2017-08-04 09:47:03 · 325 阅读 · 0 评论 -
Keylogger Gym - 101078I codeforces
blablabla: 好久不碰链表。。。但是感觉还可以#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>using namespace std;char a[1000010];struct node{ char data; node *next;原创 2017-08-01 21:23:47 · 372 阅读 · 0 评论 -
算术表达式的转换
算术表达式的转换Time Limit: 1000MS Memory Limit: 65536KBProblem Description小明在学习了数据结构之后,突然想起了以前没有解决的算术表达式转化成后缀式的问题,今天他想解决一下。 因为有了数据结构的基础小明很快就解出了这个问题,但是他突然想到怎么求出算术表达式的前缀式和中缀式呢?小明很困惑。聪明的你帮他解决吧。原创 2017-05-24 10:52:16 · 318 阅读 · 0 评论 -
顺序表应用&4:元素位置互换之移位&逆置算法
Problem Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),借助元素移位的方式,设计一个空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段。 注意:先将顺序表元素调整为符合要求的内容原创 2017-02-15 10:41:54 · 382 阅读 · 0 评论 -
M--二分查找 递归实现
M–二分查找 Time Limit: 600MS Memory Limit: 65536KB Submit Statistic Problem Description 给出含有n个数的升序序列,保证序列中的数两两不相等,这n个数编号从1 到n。 然后给出q次询问,每次询问给出一个数x,若x存在于此序列中,则输出其编号,否则输出-1。Input 单组输入。首先输入一个整数n(1原创 2017-02-08 18:44:03 · 306 阅读 · 0 评论 -
数据结构实验之栈八:栈的基本操作
数据结构实验之栈八:栈的基本操作 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic做的太慢。。遇见莫名的坑(┬_┬)↘Problem Description 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使原创 2017-02-17 20:58:23 · 412 阅读 · 0 评论 -
装船问题
装船问题 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 王小二毕业后从事船运规划工作,吉祥号货轮的最大载重量为M吨,有10种货物可以装船。第i种货物有wi吨,总价值是pi。王小二的任务是从10种货物中挑选若干吨上船,在满足货物总重量小于等于M的前提下,运走的货物的价重比最大。In原创 2017-02-13 19:19:24 · 270 阅读 · 0 评论 -
数据结构实验之栈:行编辑器 数组模拟栈
Problem Description 一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。 由于用户在终端上进行输入时,不能保证不出差错,因此,若在编辑程序中,“每接受一个字符即存入用户数据区”的做法显然不是最恰当的。较好的做法是,设立一个输入缓冲区,用以接受用户输入的一行字符,然后逐行存入用户数据区。允许用户输入出差错,并在发现有误时可以及时更正。例如原创 2017-02-16 21:14:17 · 255 阅读 · 0 评论 -
数据结构实验之栈四:括号匹配
数据结构实验之栈四:括号匹配 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。Input 输入数据有多组,处理到文件结束。Output 如果匹配就输出“yes”,不匹配输出原创 2017-02-16 19:07:29 · 288 阅读 · 0 评论 -
数据结构实验之图论六:村村通公路[prim 最小生成树]
数据结构实验之图论六:村村通公路Time Limit: 1000MS Memory Limit: 65536KBProblem Description当前农村公路建设正如火如荼的展开,某乡镇政府决定实现村村通公路,工程师现有各个村落之间的原始道路统计数据表,表中列出了各村之间可以建设公路的若干条道路的成本,你的任务是根据给出的数据表,求使得每个村都有公路连通所需要的最低成本。翻译 2017-06-17 13:03:30 · 313 阅读 · 0 评论 -
SDUT-3345 数据结构实验之二叉树六:哈夫曼编码
数据结构实验之二叉树六:哈夫曼编码Time Limit: 1000MS Memory Limit: 65536KBProblem Description字符的编码方式有多种,除了大家熟悉的ASCII编码,哈夫曼编码(Huffman Coding)也是一种编码方式,它是可变字长编码。该方法完全依据字符出现概率来构造出平均长度最短的编码,称之为最优编码。哈夫曼编码常被用于数据文翻译 2017-06-09 21:28:16 · 378 阅读 · 0 评论 -
二叉树学呀学呀学
**树的建立**1.先序建立char a[100];int i;struct node * creat(struct node * root){ if(a[++i]==',') root = NULL; else { root = (struct node *)malloc(sizeof(struct node)); root->data =原创 2017-05-24 20:38:32 · 194 阅读 · 0 评论 -
数据结构实验之排序四:寻找大富翁 堆排序
数据结构实验之排序四:寻找大富翁Time Limit: 200MS Memory Limit: 512KBProblem Description2015胡润全球财富榜调查显示,个人资产在1000万以上的高净值人群达到200万人,假设给出N个人的个人资产值,请你快速找出排前M位的大富翁。Input首先输入两个正整数N( N ≤ 10^6)和M(M ≤ 10),原创 2017-07-23 21:04:10 · 458 阅读 · 0 评论 -
数据结构实验之栈七:出栈序列判定
数据结构实验之栈七:出栈序列判定Time Limit: 30MS Memory Limit: 1000KB Problem Description给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次。输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序列。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5原创 2017-05-20 21:03:34 · 299 阅读 · 0 评论 -
懒虫小鑫 (贪心+快排)
懒虫小鑫 Time Limit: 1000MS Memory Limit: 65536KB Submit StatisticProblem Description 小鑫是个大懒虫,但是这一天妈妈要小鑫去山上搬些矿石去城里卖以补贴家用。小鑫十分的不开心。不开心归不开心,小鑫还是要做这件事情的。 我们把这个事情简化一下。有n块矿石,设第i块矿石由两个数字wi和pi表示。分别表示这原创 2017-02-13 15:00:29 · 303 阅读 · 0 评论 -
数据结构实验之排序八:快速排序 递归
Time Limit: 1000MS Memory Limit: 65536KB Problem Description 给定N(N≤10^5)个整数,要求用快速排序对数据进行升序排列,注意不得使用STL。Input 连续输入多组数据,每组输入数据第一行给出正整数N(≤10^5),随后给出N个整数,数字间以空格分隔。Output 输出排序后的结果,数字间以一个空格间隔,行末不得有多原创 2017-02-08 19:22:43 · 1046 阅读 · 0 评论 -
最长上升子序列 动态规划 dp
最长上升子序列Time Limit: 3000MS Memory Limit: 65536KB Submit Statistic Problem Description 一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1<= i1原创 2017-02-14 15:16:18 · 327 阅读 · 0 评论 -
上升子序列 动态规划 Dp
Statistic Problem Description 一个只包含非负整数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列{a1, a2, …,aN},我们可以得到一些上升的子序列{ai1, ai2, …, aiK},这里1 ≤ i1 < i2 <…< iK ≤ N。例如:对于序列{1, 7, 3, 5, 9, 4, 8},有它的原创 2017-02-14 15:14:20 · 220 阅读 · 0 评论 -
顺序表应用8:最大子段和之动态规划法
Problem Description 给定n(1<=n<=100000)个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n。 例如,当(a[1],a[2],a原创 2017-02-16 15:44:00 · 229 阅读 · 0 评论