Inspirado tan solo código para hacer una expresión eficaz.
Presentado (Asunto) link → la UVa-514
Esta es la esencia del problema: dado "orden de dibujo", se determina si una secuencia dada la pila.
Un pequeño problema como este:
Así que la idea es similar:
ideas:
tiendas de matriz entrenan orden de programación, el orden normal de almacenamiento de pila pila, si la cabeza = array pila, la matriz se mueve a la siguiente, pop el elemento superior
después de que el recorrido es completa, si la pila está vacía, entonces el programa completo se ha completado, la potencia sí
notas:
1, la salida no es SÍ SÍ! (Comienzo mal, llorando en el halo váter)
2, líneas vacías entre cada conjunto de resultados, una línea en blanco después de que el resultado final no pueden ser omitidos.
3, la entrada a esta pregunta está fuera de la mente, introduzca un n, siempre y cuando la línea no aparece el siguiente n 0, siempre se puede entrar en él. Así que se puede tratar de abajo hacia arriba método de programación: escribir su idea principal, y por último formato de entrada suplementario.
código:
#include<bits/stdc++.h>
using namespace std;
int main() {
int a[1010];
int n; while((cin >> n) && n) {
while(cin >> a[1] && a[1]) {
for(int i = 2; i <= n; i++) { cin >> a[i]; }
stack<int> s2;
int j = 1;
for(int i = 1; i <= n; i++) {
s2.push(i);
while((!s2.empty()) && (s2.top() == a[j])) { j++; s2.pop(); }
}
cout << ((s2.empty()&&(j==n+1)) ? "Yes\n" : "No\n");
}
cout << "\n";
}
return 0;
}
cosecha:
1, métodos de programación de abajo arriba.
2, el uso de la pila para mejorar su dominio.