洛谷OJ 1155 双栈排序(二分图染色)
来源:互联网 发布:英雄联盟关注软件 编辑:程序博客网 时间:2024/05/22 09:13
题目描述
Tom最近在研究一个有趣的排序问题。如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序。
操作a
如果输入序列不为空,将第一个元素压入栈S1
操作b
如果栈S1不为空,将S1栈顶元素弹出至输出序列
操作c
如果输入序列不为空,将第一个元素压入栈S2
操作d
如果栈S2不为空,将S2栈顶元素弹出至输出序列
如果一个1~n的排列P可以通过一系列操作使得输出序列为1,2,…,(n-1),n,Tom就称P是一个“可双栈排序排列”。例如(1,3,2,4)就是一个“可双栈排序序列”,而(2,3,4,1)不是。下图描述了一个将(1,3,2,4)排序的操作序列: < a,c,c,b,a,d,d,b >
当然,这样的操作序列有可能有几个,对于上例(1,3,2,4),< a,c,c,b,a,d,d,b>是另外一个可行的操作序列。Tom希望知道其中字典序最小的操作序列是什么。
输入输出格式
输入格式:
输入文件twostack.in的第一行是一个整数n。
第二行有n个用空格隔开的正整数,构成一个1~n的排列。
输出格式:
输出文件twostack.out共一行,如果输入的排列不是“可双栈排序排列”,输出数字0;否则输出字典序最小的操作序列,每两个操作之间用空格隔开,行尾没有空格。
输入输出样例
输入样例#1:
【输入样例1】
4
1 3 2 4
【输入样例2】
4
2 3 4 1
【输入样例3】
3
2 3 1
输出样例#1:
【输出样例1】
a b a a b b a b
【输出样例2】
0
【输出样例3】
a c a b b d
说明
30%的数据满足: n<=10
50%的数据满足: n<=50
100%的数据满足: n<=1000
题目大意:
有一个数字序列,问能不能通过两个栈对它进行排序,如果可以输出子点序最小的操作方案。
解题思路:
首先,对于任意一对元素a[i], a[j]
- 洛谷OJ 1155 双栈排序(二分图染色)
- 洛谷 1155 双栈排序 NOIP2008 图论 二分图染色
- 洛谷1155 NOIP2008 双栈排序【二分图染色】
- 洛谷 1155 [NOIP2008] 双栈排序 二分图染色+模拟
- noip2008 双栈排序 (二分图染色)
- 【luogu1155】双栈排序(二分图染色)
- [栈 二分图染色] NOIP2008 双栈排序
- C++:二分图染色法---双栈排序
- 【NOIP2008提高组T4】双栈排序-二分图染色
- 【NOIP2008】【二分图染色】T4 双栈排序 题解
- 南阳oj 1015 二分图染色入门
- 【图-二分图染色】NOIP提高组2008双栈排序
- HDU OJ 4185 Oil Skimming【二分图之黑白染色】
- HDU OJ 4185 Oil Skimming【二分图之黑白染色】
- 二分图判定(染色问题)
- NP-Hard Problem(二分图染色)
- HDU5971 Wrestling Match(二分图染色)
- 二分图(1)--染色问题
- 3次握手4四断开笔记
- js中的ajax技术
- json:java对象与json字符串互转、java的list和map各自与json字符串的互转
- 迭代求立方根
- 打开Form时报错 FRM-18108:装载下列对象失败 FRM-10102不能附加PLSQL程序库
- 洛谷OJ 1155 双栈排序(二分图染色)
- 继承和虚函数在NS2中的应用(更好地理解累的继承)
- Attention is all you need 论文记录
- 二叉树 各种算法
- jquery ajax图片上传 springmvc ajaxFileUpload 报这错jQuery.handleError is not a function
- MIME协议分析
- ZCMU—1603
- 优化手机的实用指南
- 前端框架Vue、angular、React的优点和缺点