设为首页 加入收藏

TOP

UVA514 - Rails(栈)
2015-07-20 17:41:47 来源: 作者: 【 】 浏览:5
Tags:UVA514 Rails

题目:UVA514 - Rails(栈)


题目大意:某城市有一个火车站,铁轨成Y字形,有n节车厢从A方向驶入车站,按进站顺序编号1-n,现在给你一个序列代表进入B的顺序,你可以借助一个C中转站,问能否可以按这样的序列驶入B。


解题思路:栈模拟,中转站就代表栈,将车厢入栈后,只能从栈顶一个一个出去。注意输出每个cas都有一个空行。


代码:

#include 
  
   
#include 
   
     #include 
    
      using namespace std; const int N = 1005; int tail[N], n; stack
     
       s; bool ok () { while (!s.empty()) { s.pop(); } int k = 1; int p = 0; while (k <= n && p < n) { if (k == tail[p]) { p++; k++; } else if (!s.empty() && s.top() == tail[p]) { s.pop(); p++; } else { s.push (k); k++; } } while (!s.empty() && p < n) { if (s.top() == tail[p]) { s.pop(); p++; } else break; } if (p == n) return true; return false; } int main () { bool flag; while (scanf ("%d", &n) && n) { flag = 1; while (1) { for (int i = 0; i < n; i++) { scanf ("%d", &tail[i]); if (!tail[i]) { flag = 0; break; } } if (!flag) break; printf ("%s\n", ok() ? "Yes": "No"); } printf ("\n"); } return 0; }
     
    
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU-5001 Walk 2014年鞍山网络赛E.. 下一篇HDU 4998 Rotate(鞍山网络赛B题)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·MySQL 安装及连接-腾 (2025-12-25 06:20:28)
·MySQL的下载、安装、 (2025-12-25 06:20:26)
·MySQL 中文网:探索 (2025-12-25 06:20:23)
·Shell脚本:Linux Sh (2025-12-25 05:50:11)
·VMware虚拟机安装Lin (2025-12-25 05:50:08)