摘要: 逆序数求解,同于POJ2299题。常规做法是使用O(N^2)的两重循环,逐个遍历for i = (0, N) for j = (i+1, N) if(a[i] > a[j]) count++;return count;推荐的做法是使用类似于归并排序的方法,可以再O(NlogN)内算出。输入格式:5(个数) 910543(个数)1 230(个数为0表示结束) 1 #include<cstdio> 2 #include<iostream> 3 #include<fstream> 4 using namespace std; 5 6 #define MAX 阅读全文
posted @ 2012-09-16 23:27 dandingyy 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 题目描述(即判断是否是合理的出栈序列问题?)有顺序排列的1,2, 3,…,n节车厢在入站口等待调度。车站设置了一个栈作为缓冲,这样的话只可能进行下列两个操作之一:(1)如果还有车厢在入站口,将最前面的入栈缓冲(2)将栈顶的车厢驶出车站 给定一个1至n的排列,问其作为出站序列是否合法。注意:入站顺序为1,2, 3,…,n,即1先入栈...,n最后入栈。输入输入包含若干测试用例。每一个测试用例由多行组成。第一行是两个整数n(1<=n <= 100)和m,n表示入站序列为1至n。m表示随后有m行出站序列。当n,m均为0时表示输入结束。输出对应每一个出站序列,合法则输出一行YES,否则输出 阅读全文
posted @ 2012-09-16 21:49 dandingyy 阅读(2238) 评论(0) 推荐(0) 编辑