NYOJ 93 汉诺塔(三)
2014-11-07 11:51
197 查看
汉诺塔(三)
题目来源:点击打开链接题目信息:这道题也是模拟栈的操作,用数组栈表示三根针,先将所有的金片全部放到一号针上,然后用栈的基本操作模拟金片的指令,定义一个k作为标记,判断是否合法。
源代码:
#include<stdio.h> #include<stack> using namespace std; int main() { int n; int p,q; int a,b; scanf("%d",&n); while(n--) { stack<int>S[4]; //定义数组栈,这里需要注意,和数组一样,需要定义的比实际大些。 scanf("%d%d",&p,&q); int i; for(i=p;i>0;i--) S[1].push(i); //将所有金片初始在1号针上 int k=1; //定义一个标记 for(i=1;i<=q;i++) { scanf("%d%d",&a,&b); if(S[a].empty()) //非法指令1 { k=0; break; } if(!S[b].empty()&&S[a].top()>S[b].top()) //非法指令二 { k=0; break; } S[b].push(S[a].top()); S[a].pop(); } if(k==0) printf("illegal\n"); else printf("legal\n"); } return 0; }
相关文章推荐
- nyoj 93 汉诺塔(三)(stack)
- NYOJ93 汉诺塔(三)【栈】
- nyoj--93 汉诺塔(三)(stack)
- NYOJ - 93 - 汉诺塔(三)(STL - stack)
- NYOJ93 汉诺塔3(栈的应用)
- NYOJ-93 汉诺塔(三)【模拟】
- nyoj 93 汉诺塔(三) 【stack】
- nyoj—93-汉诺塔(三)
- NYOJ93【汉诺塔(三)】
- nyoj 93 汉诺塔(三)
- NYOJ 93--汉诺塔(三)【stack】
- NYOJ:93 汉诺塔(三)(简单栈)
- nyoj 93 汉诺塔(三)
- nyoj 93 汉诺塔(三)
- 汉诺塔(三)栈的应用NYOJ93
- NYOJ 93 汉诺塔(三) 【栈的简单应用】
- NYOJ 93 汉诺塔(三)(栈)
- NYOJ 93 汉诺塔(三)
- NYOJ 93 汉诺塔(三)(栈<stack>)
- nyoj_93 汉诺塔(三)