POJ 1363 (栈的)
来源:互联网 发布:反ps软件叫什么 编辑:程序博客网 时间:2024/06/05 05:40
poj 1363
我花了半天的时间解决这一题,也不差一点时间写注释;
我的思路:
一:A边的车厢,先和B边的比,成了就A,和B出站;
二: 如果(一)不成立;则station和b比,成,就A,station 出站;
三:如果一,二,不成立,就将A的车厢压到station栈中;
四,重复一,二,三,结束条件是A没有车厢 并且 station没车厢 或者 b出栈出完了;
在这里说说我的失误,为什么这么长时间,才解决这个水题;
一;我AB都用栈来存,搞大了流程复杂度;
二;每一步尽量用函数解决,分块解决,减少流程的复杂度;
/*poj 1363我花了半天的时间解决这一题,也不差一点时间写注释;我的思路:一:A边的车厢,先和B边的比,成了就A,和B出站;二: 如果(一)不成立;则station和b比,成,就A,station 出站;三:如果一,二,不成立,就将A的车厢压到station栈中;四,重复一,二,三,结束条件是A没有车厢 并且 station没车厢 或者 b出栈出完了;在这里说说我的失误,为什么这么长时间,才解决这个水题;一;我AB都用栈来存,搞大了流程复杂度;二;每一步尽量用函数解决,分块解决,减少流程的复杂度; */#include <stdio.h>#include <iostream>#include <string>#include <cstring>#include <stack>using namespace std;const int MAX = 1001;int a[MAX];int b[MAX];stack <int>sta;int n;void showA(){int i;printf("a[] = ");for(i=0; i<n; i++){printf(" %d",a[i]);}printf("\n");}void showB(){int i;printf("b[] = ");for(i=0; i<n; i++){printf(" %d",b[i]);}printf("\n");}bool initB(){int i,temp;for(i=0; i<n+1; i++) b[i] = 0;for(i=0; i<n; i++){scanf(" %d",&temp);b[i] = temp;if(i==0 && temp==0) return false;}return true;}void initA(){int i;for(i=0; i<n+1; i++) a[i] = 0;for(i=0; i<n; i++){a[i] = i+1;}}bool solve(){int i=0,j=0,k;while(sta.size()) sta.pop();//初始化sta; while(j<n)//这里就是我上面说了流程 {if(a[i] == b[j])i++,j++;else if(sta.size() != 0 && sta.top()==b[j]){sta.pop();j++;}else if(i<n){sta.push(a[i++]);}elsereturn false;}if(j==n) return true;return false;}int main(){bool nMark;scanf("%d",&n);while(n){initA();//初始化A边 while(initB())//初始化B边, 有可能第一个元素是0,这里做了一个判断; {if( solve() ) //solve() 关键是解决能否完美出车; printf("Yes\n");elseprintf("No\n");}printf("\n");scanf("%d",&n);}return 0;}
阅读全文
0 0
- POJ 1363 (栈的)
- Rails(poj 1363 栈的应用)
- POJ 1363(栈)
- POJ-----1363栈的模拟
- poj 1363 Rails (栈的应用+STL)
- poj 1363 Rails (栈的应用+STL)
- POJ 1363 Rails(模拟栈的过程)
- poj 1363 Rails(栈)
- POJ 1363 Rails(栈)
- poj 1363 Rails(栈)
- 【POJ】1363 - Rails(栈)
- 【Poj】-1363-Rails(栈)
- poj 1363 Rails(栈)
- 【POJ】1363---Rails(栈)
- POJ 1363 Rails 栈的应用
- POJ 1363 Rails (栈的基本应用)
- POJ:1702 Rails(栈的应用)
- KMP算法的练习题(poj 3461、poj 2752、poj 2406、poj 1961)
- CentOS升级Python2.6到Python2.7并安装pip
- 树形结构的查找(平衡二叉树--插入时调整)
- 对象池实操(二)_对一的演示的补充_实现对象的数据重置
- 关于struts三种action后台接收参数的方法
- http状态码详解
- POJ 1363 (栈的)
- SpringMVC源码剖析(一)- 从抽象和接口说起
- php-redis扩展
- 基于Dragonboard 410c的总线控制之SPI(二)
- ProjectForge研究第一天
- poj 1861 Network(并查集)
- 将DIB/bitmap读入内存并转为 halcon hobject
- c++中string用法
- 静态链表