数据结构
jiangjiashi
这个作者很懒,什么都没留下…
展开
-
(二叉树) Falling Leaves (P1577)
就 是用最基本的方法把输入的数据一层一层地放入到二叉树中。因为没有特殊情况,直接放就OK。,,然后中序遍历输出就可以了。#include #include #include #includeusing namespace std;struct my{ char num; my *left,*right;}*go,*a,*b;char s[44][原创 2013-01-11 13:19:43 · 740 阅读 · 0 评论 -
(堆操作) Moo University - Financial Aid (P2010)
一开始做这个还没有什么思路,后面看了一下别人的代码也就知道大概是怎么做了。思路:1、先把输入的数据依score的顺序从小到大进行排序。 2、从小到大的进行堆插入,当不满n/2个时就进行插入,如果满了,就插入比堆内最大值小的值,并进行更新其中low[i]里就保存前i个中有n/2个相加的need数最小值。 3、同理的从大小到的进行堆维护原创 2013-01-11 00:08:24 · 647 阅读 · 0 评论 -
(堆) 合并果子 (CD1224)
这是一个经典的问题,,当初是暴力过的。现在第一次学着最初等的堆来写。#include#include#include#includeusing namespace std;#define N 1000011int l;int tree[N];int go[N];void put(){ for (int i=1;i<=l;i++) cout<<tree[i]<原创 2012-12-27 21:11:59 · 477 阅读 · 0 评论 -
(二叉树) Tree Recoery (P2255)
注意点:中序的二叉树的顶点肯定是在最后才输出,所以前一个序列中的第一个 字符出现在后个一个序列的中间,把后面的序列分为左右两个子树。 第一个串中第一个字符开始后面出现的几个连着的都是左子树上面的,然后全是右子树上的。#include #include #include #include#includeusing n原创 2013-01-11 15:18:23 · 1210 阅读 · 0 评论 -
双端队列
题意:先是给出N本书,,从上到下的放着。 现在继续在这些书上面放, 1、放一本书 2、把上面K本书翻转一下思路:用一个双端队列,,今天才在网上看了一点。。用这个思路简单粗暴啊 如果队列中超过了K个,则下面的就出队。。#include#include#includeusing原创 2013-05-10 22:53:57 · 672 阅读 · 0 评论 -
煎饼(堆)
虽然不喜欢吃这个煎饼题意:给出一列数列,随时求其中位数并删除。。思路:用两个堆,,左边一个堆,,右边一个堆,并维持其个数差不超过1. 一开始自己写的堆,,自己测试的数据也是对我,就是一直WA,, 后来改用priority_queue。,,就直接简单粗暴 了#include#include#include转载 2013-05-12 16:35:42 · 1289 阅读 · 0 评论 -
(先序+中序-->后序)Tree Recovery (P2255)
题意:给出一个二叉树的先序遍历,再给出中序遍历,求其后序遍历。思路:先构造出其原来的二叉树,再后序输出即可。体会:以前做过这个题,但是是直接解决的。没有构造出原有的二叉树,比较复杂。 今天看到编程之美里有这个题,就来写了一下,这样思路更清晰。#include#include#includeusing namespace std;struct t原创 2013-11-26 21:21:18 · 567 阅读 · 0 评论