数据结构
sqplfh
这个作者很懒,什么都没留下…
展开
-
FOJ 1845 Look Up
题目大意:给你一组数据,要你求出第i个数的右边第一个比他大的数的下标,若此数不存在下标为0。从右往左来,用数组来模拟实现一个堆栈。样例:给6个数 326112。先把第i个数和栈顶元素比较,如果大于等于栈顶元素的话,将栈顶元素出栈。一直循环,直到第i个数小于栈顶元素,第i个数的右边第一个比他大的数的下标就栈顶元素的下标,接着把栈顶元素和下标入栈。开了个high数组,high[0]=1000010;这样便于算法实现。代码如下:#include using namespace st原创 2011-01-12 01:11:00 · 476 阅读 · 0 评论 -
HDU 3736 CD
<br />汗,一开始把mililion认为是1亿。结果连数组都不敢开。<br /> <br />水题。算是队列的应用吧。<br /> <br />#include <iostream>using namespace std;int a[1000010];int b[1000010];int main(){ int n,m,fa,fb,i,cnt; while(scanf("%d%d",&n,&m)&&(n||m)) { for(i=0;i原创 2011-02-01 20:11:00 · 898 阅读 · 0 评论 -
字典树。。
又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。原创 2011-02-03 14:01:00 · 278 阅读 · 0 评论 -
HDU 1251 统计难题 字典树
<br />以前也看过字典树。当初貌似懂了,结果忘了,所以又打算重新学学。<br /> <br />网上找了些代码,大都是用指针实现的,本人看到指针就头大。<br /> <br />郁闷啊。<br /> <br />所以,自己写了个没用指针实现的。<br /> <br />#include <iostream>using namespace std;struct node{ int cnt;//前缀出现次数 int acnt;//单词出现次数 bool ans;//是否原创 2011-02-03 14:53:00 · 356 阅读 · 0 评论 -
HDU 3911 Black And White
有原题的题。自己写的时候,一直超时。悲催啊。然后,上网看了下别人的解题报告,发现需要一个标记,用来表示是否需要翻转。这样,就不用每次都更新到连续的区间。(避免复杂度变高)果断,给力啊。#include using namespac原创 2011-08-07 12:55:29 · 556 阅读 · 0 评论 -
1656 How many different numbers
呜呜,这题做了好久啊。4个月吧。纠结。以前,自己写的代码和百度来的代码都超时。纠结。今天,看了下一道类似题的解题报告,就自己动手写了遍。1A,~\(≧▽≦)/~具体思路:先把N个保存下来,进行离散,然后用就可以用flag记录某个数前面出现的位置,再把询问保存下来,按右原创 2011-10-02 21:39:58 · 467 阅读 · 0 评论 -
FOJ 1400 平方数
http://acm.fzu.edu.cn/problem.php?pid=1400这题可以暴力(R - L)的长度,因为 1、1其次,本题要用到异或运算,用1和0表示某个因子出现个数是基数次还是偶数次。一开始用MAP超时,后来改用字典树过了。(没暴力的快,因为(R-L)的值不会太小)。#include using namespace std;struct node{原创 2011-12-10 18:03:04 · 452 阅读 · 0 评论 -
FOJ 1893 内存管理
ono。纠结一下午。大一的校赛题,大三才解决,而且算是做了操作系统的作业。嘿嘿,偷懒下。过段时间,贴上代码。最佳适配算法,要选择足够大的而且最左边的。。。#include struct node{ bool state; short id; short pre,next;}m[110];void Initial(){ int i; for(i=0;i<原创 2011-10-31 17:43:13 · 377 阅读 · 0 评论