Rails--POJ 1363
1、解题思路:基本数据结构stack。
2、注意事项:出栈必须先入栈、Num的越界。
3、实现方法:
1 #include <iostream>
2 using namespace std;
3
4 #define MAX 1024
5 int target[MAX],stack[MAX];
6
7 void Init(int n)
8 {
9 for(int i=1;i<n;i++)
10 cin>>target[i];
11 }
12
13 void Do(int n)
14 {
15 int Num=0,j=0;
16 stack[j]=0;
17 for(int i=0;i<n;i++)
18 {
19 while(1)
20 {
21 if(target[i]==stack[j])//相同,出中转站
22 {
23 j--;
24 break;
25 }
26 else //不同,入中转站
27 {
28 stack[++j]=++Num;
29 if(Num>n)
30 break;
31 }
32 }
33 if(Num>n)
34 break;
35 }
36 if(j==0)
37 cout<<"Yes"<<endl;
38 else
39 cout<<"No"<<endl;
40 }
41
42 int main()
43 {
44 int n;
45 while(cin>>n && n)
46 {
47 while(cin>>target[0] && target[0])
48 {
49 Init(n);
50 Do(n);
51 }
52 cout<<endl;
53 }
54 return 0;
55 }