Hola a todos soy Bubble, hoy les traigo el contenido de la reseña, por la reseña la paso de largo.
contenido
1. Secuencia cuadrada
Enlace temático: Secuencia cuadrada - Curso de nubes de Lanqiao (lanqiao.cn)
Requisitos del tema:
Xiao Ming quiere encontrar dos números enteros positivos XX e YY, satisfactorio
- 2019<X<Y;
- 2019^2, X^2, Y^2 forman una secuencia aritmética.
¿Cuál es el valor mínimo de X + YX + Y entre todas las soluciones posibles?
Ideas para resolver problemas:
Violencia
#include<bits/stdc++.h>
using namespace std;
int main()
{
for(int i=2020;i<10001;i++)
{
int x = i*i*2-2019*2019;
int y = sqrt(x);
if(y*y==x)
{
cout<<i+y;
return 0;
}
}
}
2. Cruzando el campo minado
Enlace temático: Cruzando el campo minado - Curso de nubes de Lanqiao (lanqiao.cn)
Requisitos del tema:
El tanque del tanque de X-star es muy extraño, debe pasar alternativamente a través del área de radiación de energía positiva y el área de radiación de energía negativa para mantener el funcionamiento normal, de lo contrario, será desechado.
Un tanque necesita ir del área A al área B (las áreas A y B son áreas seguras, sin características de energía positiva o negativa), ¿cómo obtener el camino más corto?
El mapa conocido es una matriz cuadrada, en la que las áreas A y B están marcadas con letras, y las otras áreas están marcadas con signos positivos o negativos para indicar las áreas de radiación de energía positiva y negativa, respectivamente.
P.ej:
A + - + -
- + - - +
- + + + -
+ - + - +
B + - + -
Los tanques solo pueden moverse horizontal o verticalmente a zonas adyacentes.
Ideas para resolver problemas:
plantilla BFS
#include<bits/stdc++.h>
using namespace std;
const int N = 101;
char s[N][N];
int dx,dy,tx,ty,n;
int ddx[]={1,0,0,-1};
int ddy[]={0,1,-1,0};
int vis[N][N];
struct node{
int x,y,t;
char b;
};
int bfs()
{
vis[dx][dy] = 1;
queue<node>q;
q.push({dx,dy,0,'r'});
while(q.size())
{
node z = q.front();
q.pop();
if(z.x==tx&&z.y==ty)
{
return z.t;
}
for(int i=0;i<4;i++)
{
int x = z.x+ddx[i];
int y = z.y+ddy[i];
if(!vis[x][y]&&x>0&&y>0&&x<=n&&y<=n&&s[x][y]!=z.b)
{
q.push({x,y,z.t+1,s[x][y]});
vis[x][y] = 1;
}
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>s[i][j];
if(s[i][j]=='A')
{
dx=i;
dy=j;
}
if(s[i][j]=='B')
{
tx=i;
ty=j;
}
}
}
cout<<bfs();
return 0;
}