hdu 1022 AND toj 1036 栈的运用
2015-04-12 22:10
309 查看
其实就是模拟一下栈啦。
hdu 1022:
toj 1036(和上一个题基本一样,输入输出麻烦点):
hdu 1022:
#include <iostream> using namespace std; const int N = 10; char o1 ; char o2 ; char s ; int ans[N * 2]; int main () { int n; while ( cin >> n ) { cin >> o1 >> o2; int top = 0, p = 0, cnt = 0; for ( int i = 0; i < n; i++ ) { if ( top == 0 ) { s[top++] = o1[p++]; ans[cnt++] = 1; } while ( s[top - 1] != o2[i] ) { if ( p == n ) break; s[top++] = o1[p++]; ans[cnt++] = 1; } if ( s[top - 1] != o2[i] ) { break; } else { top--; ans[cnt++] = 0; } } if ( cnt == 2 * n ) { cout << "Yes." << endl; for ( int i = 0; i < cnt; i++ ) { cout << ( ans[i] ? "in" : "out" ) << endl; } } else { cout << "No." << endl; } cout << "FINISH" << endl; } return 0; }
toj 1036(和上一个题基本一样,输入输出麻烦点):
#include <cstdio> const int N = 1000; int s ; int main () { int n; while ( scanf("%d", &n), n ) { int tmp; while ( scanf("%d", &tmp), tmp ) { int top = 0, p = 1; bool flag = true; for ( int i = 0; i < n; i++ ) { if ( top == 0 ) { s[top++] = p++; } while ( s[top - 1] != tmp ) { if ( p == n + 1 ) break; s[top++] = p++; } if ( s[top - 1] != tmp ) { flag = false; } else { top--; } if ( i != n - 1 ) { scanf("%d", &tmp); } } printf("%s\n", flag ? "Yes" : "No"); } putchar('\n'); } return 0; }
相关文章推荐
- Train Problem I hdu 1022 栈的运用
- HDU1036 - Average is not Fast Enough! (简单题)
- hdu 1358 KMP的next数据运用
- hdu 1022
- hdu 1022
- HDU-1022/数组栈
- hdu 1203 (01背包,灵活运用)
- POJ 2135 Farm Tour and HDU 1853 Cyclic Tour(费用流初运用)
- hdu-1022 Train Problem I (栈的简单应用)
- HDU 1022 Train Problem I
- HDU 1848 Fibonacci again and again(博弈 SG运用)
- HDU 1022 Train Problem I 模拟栈题解
- HDU1022 Train Problem I【堆栈+STL+水题】
- hdu 4288(lower_bound&&upper_bound的运用)
- HDU 2095 find your present (2) 异或的经典运用
- hdu1022-Train Problem I
- HDU 1022 Train Problem I
- HDU 1036
- HDU 2203 亲和串(多个字符串函数的运用)
- Xor Sum HDU - 4825 (字典树的运用)