一个出栈有多少种顺序的问题。一般都知道是Catalan数了。
问题是这个Catalan数很大,故此需要使用高精度计算。
而且打表会速度快很多,打表公式要熟记:
Catalan数公式 Cn=C(2n,n) / (n+1);
递推公式 C(n ) = C(n-1)*(4*n-2) / (n+1)
高精度乘以一个整数和高精度除以一个整数的知识,这样还是使用整数数组比较好计算,如果使用str...
分类:
其他好文 时间:
2014-08-15 12:57:58
阅读次数:
263
题目链接:
啊哈哈,点我点我
思路:
这道题就是一道简单的栈模拟。。。。我最开始觉得难处理是当出栈后top指针变化了。。当不满足条件时入栈的当前位置怎么办,这时候想到用一个Copy数组保持入栈记录即可。。当满足所有的火车都出栈时或者已经没有火车可以进栈了,那么久跳出。。最后判断
是否出栈的火车是否达到n。。。
题目:
Rails
Time Limit: 1...
分类:
其他好文 时间:
2014-08-14 01:36:47
阅读次数:
266
UVA 12096 - The SetStack Computer
题目链接
题意:几个操作,push是在栈顶加入一个空集,dup是复制栈顶集合,在放入栈顶,union是把头两个取并集放回,int是头两个取交集放回,add是取头两个,把第一个当成一个集合加入第二个,每次操作输出栈顶集合的里面的个数
思路:用set,stack模拟,然后利用map去hash一个集合,模拟即可
...
分类:
其他好文 时间:
2014-08-13 22:30:07
阅读次数:
370
cout是右结合的cout<<++a<<","<<a++;的运行顺序是1.a的值压栈2.a自加3.‘,’压栈4.a自加5.a的值压栈6.输出栈中元素int a[] = {1,3,5,7,9};int * p = a;cout<<a<<endl;cout<<p<<" "<<*p<<endl; ...
分类:
其他好文 时间:
2014-08-13 14:32:06
阅读次数:
181
题目地址:http://poj.org/problem?id=1363此题只需验证是否为合法的出栈序列。有两个思路:1、每个已出栈之后的数且小于此数的数都必须按降序排列。复杂度O(n^2),适合人脑。//思路 1 不对!!! 例如 数据 , 3 5 2 4 1 ------...
分类:
其他好文 时间:
2014-08-13 12:57:56
阅读次数:
266
Akka支持Actor消息循环处理部分的热切换,调用context.become方法可以使用新的消息循环处理替换当前的消息处理器,被替换的消息处理器被压到一个栈结构,支持消息处理器的出栈和入栈。注:但Actor重启时,它的消息循环处理恢复到初始的行为。become方法的参数类型为部分函数PartialFunction[Any, Unit],例如:1import akka.actor.Actor2i...
分类:
其他好文 时间:
2014-08-13 10:33:56
阅读次数:
255
火车进站,模拟一个栈的操作,额外的栈操作,查看是否能按照规定顺序出栈。
数据量很少,故此题目很容易AC。
直接使用数组模拟就好。
#include
const int MAX_N = 10;
char inOrder[MAX_N], outOrder[MAX_N], stk[MAX_N];
bool rs[MA...
分类:
其他好文 时间:
2014-08-12 03:27:23
阅读次数:
232
两个栈实现队列+两个队列实现栈----java一.两个栈实现一个队列思路:所有元素进stack1,然后所有出stack1并进入stack2.实现队列的先进先出即:若stack2非空,我们须要的恰好再栈顶,出栈;若要给队列加入元素,即先进sack1,要出队时,...
分类:
编程语言 时间:
2014-08-10 15:35:40
阅读次数:
278
中缀表达式“9+(3-1)*3+10/2”转化为后缀表达式“9 3 1-3*+ 10 2/+”中缀表达式转后缀表达式的方法:1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号:将其入栈4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,...
分类:
其他好文 时间:
2014-08-10 12:57:10
阅读次数:
226
注:后序遍历是较麻烦的一个,不可大意。关键两点: 1.要走到 p->left | p->right ==0, 2.每次出栈出两个结点。
分类:
其他好文 时间:
2014-08-10 01:45:39
阅读次数:
286