具體題目如下:
先列舉我用c語言寫的**:
#include #define maxn 1000+10
int n,target[maxn];//n用來儲存火車的數量,target用來儲存火車出站順序
typedef structstack;
int empty(stack s)//判斷棧是否為空
int top(stack s)//獲得棧頂元素
void pop(stack* s)//出棧
void init(stack* s)//初始化乙個棧
void push(stack* s,int m)//入棧
int main() //如果一輛車的序號和出棧序號相同,都加1
else if(!empty(s) && top(s) == target[b])//如果棧頂元素和出棧序號相同,pop一下,b指向下一位
else if(a <= n)push(&s,a++);//最後一輛車之前,壓棧
else//都不符合上述條件,則不可能按這種方式出棧
}printf("%s\n",ok?"yes":"no");//列印結果
}return 0;
}
UVA514 鐵軌 Rails 題解
入站序列是1 n,入站後判斷如果等於出站序列的當前值,則直接出站。否則就在棧裡待著不動。模擬即可,可以選擇使用stl棧或手寫。include include include using namespace std int a 1005 n,cnt,bh,pd intmain cnt bh pd 1 ...
UVA514 鐵軌 Rails 題解
入站序列是1 n,入站後判斷如果等於出站序列的當前值,則直接出站。否則就在棧裡待著不動。模擬即可,可以選擇使用stl棧或手寫。include include include using namespace std int a 1005 n,cnt,bh,pd intmain cnt bh pd 1 ...
UVa 514 鐵軌 棧的學習
題目 鐵軌 題目描述 某城市有乙個火車站,有n節車廂從a方向駛入車站,按進站的順序編號為1 n.你的任務是判斷是否能讓它們按照某種特定的順序進入b方向的鐵軌並駛入車站。例如,出棧順序 5 4 1 2 3 是不可能的,但是 5 4 3 2 1 是可能的。題目分析 為了重組車廂,借助中轉站,對於每個車廂...