Explora los 8 swustoj serpientes

traducción de Google
Buffalo Bill (Buffalo Bill) la esperanza de ver 1000x1000 pulgada cuadrada del campo. Hay muchos posición diferente campo de la serpiente, la serpiente puede incidir cada distancia particular en cualquier dirección. Proyecto de ley no puede morder durante el viaje? En la esquina suroeste del campo se supone que (0,0) en la esquina noroeste (0,1000). Entró por que comprende n <= (el número de serpientes) de 1000 filas. Cada serpiente tiene una línea recta, que comprende tres números reales: serpiente (x, y) ubicación y la distancia sorprendente. Serpiente morderá nada más cerca de su ubicación. Proyecto de ley debe entrar en la zona comprendida entre el suroeste y noroeste, y debe abandonar el área entre las esquinas sureste y noreste. Si Bill puede completar el viaje, por favor, darle las coordenadas pueden entrar y salir del campo. Si el proyecto de ley puede entrar y salir en varios lugares, por favor Norte por la tarde. Si no hay tal posición, a continuación, imprimir "Bill será mordido."
Efecto: que un hombre vino desde el oeste, hacia el noreste, la forma de una serpiente, de vuelta a la atacan como el centro de una serie de personas, dada la ubicación y serpentea rango de ataque, se puede pedir a la gente en el pasado, y si se puede golpear a la gente Por último, entrar y salir de la posición del norte, si no es que será mordido el proyecto de ley.

La primera cuestión a tener una idea del mapa es una matriz de dos dimensiones,

Considere problemas, serpiente anillo de plátano es, el enlace de abajo arriba con DFS para determinar si los cierres de carreteras, no puede ir al marcador de rango (utilizando DFS)

Averiguar la mayor cantidad de puntos, entonces, es cuando se entra a la serpiente con el sector bananero, y para encontrar el punto de plátanos derecha (DFS) está fuera de punto

Mirando en los anteriores

于是想利用DFS
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include <math.h>
using namespace std;
int n;//蛇的数量
int bu[4][2]={1,0,-1,0,0,1,0,-1};//左 右 上 下 走
bool a[1000][1000]={0};bool b[1000][1000]={0};int jx,jy;int ji[10][2];
int nj=0;
void shuru(int x,int y,int o){//输入不能去的范围
if(sqrt(pow(jx-x,2)+pow(jy-y,2))<=o&&x<1000&&x>=0&&y<1000&&y>=0&&b[x][y]==0){
// printf("%d %d\n",x,y);
a[x][y]=1;b[x][y]=1;nj++;
for(int i=0;i<4;i++){

	shuru(x+bu[i][0],y+bu[i][1],o); 
 }		
}
else return;

} //

int rux = 0, ruy = 999, Chux = 999, chuy = 999; int p1, p2, p3, p4;
Pan vacío (int x, int y, int o, p1 int, p2, int P3, P4 int) {
si (a [x] [y]0 && X> = 1000 && X <0 && Y> = 1000 && Y <0) {
return;
}
A [X] [Y] = 0;
ninguna parte p2 dejó ninguna parte p3 inferior derecha en ninguna parte p1 en // ninguna parte P4
// determina tres casos superior e inferior izquierda barrera barrera infranqueable a la derecha
si (x
0) p3 = 1;
Si y0) p2 = 1;
si (x
999) p4 = 1;
Si y999) p1 = 1;
si (p1
1 && p21) {
cout << “Bill entra al (” << rux << "‘<< ruy <<’) y hojas en ( "<< Chux <<",‘<< chuy <<’).";
de salida (0);
}
Si (p1
1 && p31) {// valor actualización
Ruy = max (Ruy, Y);
}
IF (P1
1 && p4 == 1) {
chuy = max (chuy, y);
}
For (int i = 0; i <4; i ++) {
pan (x + bu [i] [0], y + bu [i] [1], o, p1, p2, p3, p4);
}

}

int main () {
cin >> n;
int s [10]; int x, y, o;
for (int i = 0; i <n; i ++) {// Shuru蛇

	cin>>x>>y>>o;
	x-=1;y-=1;
	ji[i][0]=x;ji[i][1]=y;
	jx=x,jy=y;
	shuru(x,y,o);
	cout<<nj;
}
for(int i=0;i<n;i++){
 	pan(ji[i][0],ji[i][1],o,0,0,0,0);
}
	cout<<"Bill enters at ("<<rux <<", "<<ruy <<") and leaves at ("<<chux <<", "<<chuy<<").";

}

Pero, por desgracia, debido a que el espacio es demasiado grande no la línea llamada recursiva

Lloré, por lo que escribir, no, dijo que el uso del algoritmo de diseño es muy importante ah, antes de escribir el algoritmo debe tener en cuenta la viabilidad

Marcada claramente imposible, entonces no marca, pero no determina directamente la marca, mal juicio al encontrar el camino Aquí Insertar imagen Descripciónfuera. . .

Pero demasiado tarde, quiero dormir. . . Con pensando

Si desea que el código puede referirse a https://blog.csdn.net/icefox_zhx/article/details/77837085

Estaba demasiado platos de morir 8

Publicado tres artículos originales · ganado elogios 0 · Vistas 26

Supongo que te gusta

Origin blog.csdn.net/hello__bug/article/details/105248645
Recomendado
Clasificación