数据结构
文章平均质量分 75
A_Eagle
人生苦短,及时行乐
展开
-
HDU 1022 Train Problem I
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022题目虽然是英文的,但很好理解,。其实就是赤裸裸的栈的题。代码:#include#include#include#includeusing namespace std;int main(){ stacks; char a[1001],b[1001]; int n,i原创 2012-01-04 14:51:51 · 1452 阅读 · 1 评论 -
NYOJ 55 懒省事的小明(优先队列)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=55这里有先优先队列的简单介绍:http://blog.csdn.net/a_eagle/article/details/7371974http://blog.csdn.net/a_eagle/article/details/7400143没事切切水题,思路:只要原创 2012-05-09 12:49:46 · 2603 阅读 · 1 评论 -
HDU 1873 看病要排队(优先队列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1873第一次写的优先队列题,准确来说不是写,是从网上找资料再从那里copy过来的。。。。。。。不过还是要保存下来学习。。。。。#include#include#include#includeusing namespace std;struct patient{ int原创 2012-03-23 12:36:56 · 1722 阅读 · 0 评论 -
NYOJ 290 动物统计加强版(字典树)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=290经典的字典树的问题,代码几乎可以来当模版来用了,就留下来了~~~,不过貌似用运算符重载排序(不知道是不是)也能过。。。。。。。。需要注意的是开辟一个新的内存时下一个指针一定要指向NULL;字典树代码:#include#include#includeint max;原创 2012-03-21 09:10:28 · 2001 阅读 · 0 评论 -
stack,queue,vector用法
分别包含在文件,,定义:stack s;queue q;vector v;stack的方法:push()的向容器顶部里插入元素;pop()是删除容器顶部的元素;top()返回容器顶部的元素;size()返回容器的元素个数;begin()是返回一个位于容器的第一个元素的迭代器;end()当然是最后了;empty()是检查是否为空的方法转载 2012-01-10 18:17:08 · 1718 阅读 · 0 评论 -
树状数组应用
一维树状数组常用的3个函数int lowbit(int x) //取x的最低位1,比如4,则返回4,如5,则返回1{ return x&(-x);}void update(int i, int val) //将第i个元素增加val{ //i的祖先都要增加val while(i <= n) { sum[i] += val; i += lowbit(i); //将i转载 2012-03-15 17:07:08 · 913 阅读 · 0 评论 -
NYOJ 322 Sort(归并排序求逆序数)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=322如果按冒泡排序这些O(n^2)肯定会超时,所以需要找一种更快的方法 --------归并排序。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序原创 2012-03-14 13:46:56 · 1739 阅读 · 0 评论 -
树状数组
问题提出:已知数组a[],元素个数为n,现在更改a中的元素,要求得新的a数组中i到j区间内的和(1思考:对于这个问题,我们可以暴力地来解决,从a[i]一直累加到a[j],最坏的情况下复杂度为O(n),对于m次change&querry,合起来的复杂度为O(m*n),在n或m很大的情况下,这样的复杂度是让人无法忍受的.另外,如果没有元素的变更,我们完全可以存储sum[1,k](k=1,2,…转载 2012-03-13 17:17:04 · 689 阅读 · 0 评论 -
NYOJ 257 郁闷的C小加(一)(中缀式变后缀式)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=257经典的数据结构题,用栈跟队列模拟。中缀式变后缀式:stack optr;用来存放运算符栈。队列queue opnd用来存放后缀表达式。从左到右扫描中缀表达式,是操作数就放进队列 opnd的末尾。如果是运算符的话,分为下面3种情况:(1)如果是‘(’直接压入opt原创 2012-03-05 07:46:03 · 1428 阅读 · 0 评论 -
NYOJ 42 一笔画问题
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=42快有一个礼拜没写过博客了,数据结构里面的算法太多,经典题目就那么点,做一道少一道,因为自己学,所以花了很多时间来理解。。。。。。不扯了。。。。。。思路:简单的欧拉回路,判断是否能够一笔画就在于各个点是否连通,判断是否连通可以用并查集来做。而且节点为奇点个数为0或者为2才能一笔画。原创 2012-03-02 16:32:22 · 5041 阅读 · 0 评论 -
NYOJ 35 表达式求值
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=35又是赤裸裸的栈的问题,弄了三天,最终还是卡在浮点数的读取。最后还是看别人博客上面才想到去标记浮点数。。。。又是浪费一天。。。。不过这题还是很经典的,数据结构上的就是拿这题当作例题讲解的,就直接贴上代码了。代码:#include#include#include#inc原创 2012-02-25 16:39:26 · 1161 阅读 · 0 评论 -
NYOJ 92 图像有用区域
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=92广搜问题。。。从上午一直弄到下午,最后发现自己画蛇添足,泪流满面。。。。。题目很简单,但深搜RumtimeError.跟迷宫那题差不多,只是不需要处理递归的边界(这就是悲剧所在,浪费了一个上午。。。。),还有个坑就在题目上面的输入,是先宽后高,跟一般的思维方式有点不一样。切到200道原创 2012-02-23 16:33:19 · 1812 阅读 · 1 评论 -
NYOJ 16 矩形嵌套
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=16简单的动态规划题,直接水过。。。。。#include#include#includeusing namespace std;struct qt{ int len;//**长**// int wid;//**宽**//}w[1001];bool comp(qt x原创 2012-02-13 20:59:56 · 1293 阅读 · 0 评论 -
NYOJ 348 Magic
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=348题意:给你n张牌,让你变一个魔术:第1次把上面的1张牌放到底部,然后最上面的牌就是1,然后拿走1。第2次把上面的2张牌依次放到底部,然后最上面的牌就是2,然后拿走2....重复这个过程,直到所有的牌都被拿走。问一开始的牌应该从上到下怎么放,才能完成这个魔术。(题目意思其实我都看不懂原创 2012-02-12 22:13:28 · 995 阅读 · 1 评论 -
NYOJ 2 括号配对问题
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=2第一次用栈来写的代码,早上队长讲了一下,了解了下基础,觉得C++的栈可以直接调用,C的栈却要自己定义,还是该花时间好好看C++.这是用C写的:代码:#includestruct stack { char str[10005]; int top;};void原创 2012-01-03 08:59:08 · 1608 阅读 · 1 评论 -
NYOJ 38 布线问题
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=38最小生成树的最基础问题,不过对于比较笨的我来说却花了一个下午想再加上一个晚上敲代码。按照最小生成树的直接来求(随机选一个点,然后找这个点连接到其他点的那条边的最小值(权值),找到后再标记这个点,再从起始点和找到的那个点一起出发,继续找这些点连接到其他点的那条边的最小值,继续标记点。。原创 2012-02-23 08:07:42 · 1520 阅读 · 2 评论