Rails
2016-03-07 16:05
447 查看
题目链接http://poj.org/problem?id=1363
题意:火车按照1-n的顺序进入车站,能不能将各个车厢按照我们制定的顺序开出。
题意:火车按照1-n的顺序进入车站,能不能将各个车厢按照我们制定的顺序开出。
/*思路:按照给出的出栈顺序,一个一个和和当前栈顶的元素比较,不相等就向当前栈压入一个元素,因为是按照顺序压栈的, 所以总会找到一个当前给出的顺序所在位置值一样的栈顶元素,然后出栈。同时 给出的元素顺序也后移一位 直到给出的顺序遍历完 或者出错。 */ #include <stdio.h> int max=1010; int n,t[1010]; int main() { while(scanf("%d",&n)&&n!=0) { while(scanf("%d",&t[1])&&t[1]!=0) { int stack[max],top=0; int a=1,b=1,i; for(i=2;i<=n;i++) scanf("%d",&t[i]);//t[i]存储指定的数据顺序 int ok=1; while(b<n) { if(a==t[b])//相等 { a++;b++; } else if(top&&stack[top]==t[b])//栈顶元素等于指定顺序的数据 { top--; b++; } else if(a<=n)//逐个遍历入栈 { stack[++top]=a++; } else//不符合上述所有情况 { ok=0;break; } } printf("%s\n",ok?"Yes":"No"); } printf("\n"); } return 0; }
#include <cstdio> void push(int *stack, int *top, int n) { stack[*top] = n; (*top)++; } int pop(int *stack, int *top) { (*top)--; return stack[*top]; } int main() { int n, num[1001], stack[1001]; while(scanf("%d", &n), n != 0) { int first, IsJudge; while(scanf("%d", &first), first != 0) { IsJudge = 0; num[0] = first; int i, top = 0; for(i = 1; i < n; i++) { scanf("%d", &num[i]); } int j = 1; for(i = 0; i < n; i++) { for(; j <= num[i]; j++) //所有小于指定元素的都进栈 { push(stack, &top, j); } if(num[i] == stack[top - 1]) //判断元素是否和栈顶元素相等 { pop(stack, &top); continue; // } if(num[i] < j) //指定元素小于元素的,只能从栈中找元素 { if(stack[top - 1] != num[i]) { printf("No\n"); IsJudge = 1; break; } else { pop(stack, &top); } } } if(!IsJudge) printf("Yes\n"); } printf("\n"); } return 0; }
相关文章推荐
- 1106. Lowest Price in Supply Chain (25)
- 利用thumbnailer API来提取图标视频或专辑的thumbnail
- poj 1995 Raising Modulo Numbers(快速幂模板)
- sendmail使用
- [leetcode] 11. Container With Most Water
- 可伸缩性, 可用性和稳定性模式 Scalability, Availability & Stability Patterns
- saiku - 优化多维度查询效率
- 【Xamarin挖墙脚系列:在VMware11中安装Mac10.11 EI Captain后的vmware tools】
- 常用的三种邮件协议
- URAL 1017 Staircases
- Intel 82599 ixgbe & ixgbevf CNA 卡驱动分析02——VF/PF/MailBox
- Leet Code OJ 219. Contains Duplicate II [Difficulty: Easy]
- C# Linq 交集、并集、差集、去重http://blog.csdn.net/joyhen/article/details/39578325
- Dell R710 RAID1设置
- explain中的key_len
- Leet Code OJ 172. Factorial Trailing Zeroes [Difficulty: Easy]
- 简单总结RectF、Rect 和Matrix ,还有Paint的使用方法
- sleep和wait区别以及线程池简单实现示例
- You have new mail in /var/spool/mail/root
- UVA 11374(p329)----Airport Express