2020/7/30 Mejorando

Proceso de juego

comienzo

El cuarto día del campo de entrenamiento, el equipo comenzó a las 12:00 del mediodía. Al principio, no sabía qué pregunta hacer primero. Después de mirar las clasificaciones, alguien entregó la pregunta C (simplemente incorrecta), y comenzamos a estudiar la pregunta C. A primera vista, era una pregunta de cadena, pero en realidad era una pregunta de lluvia de ideas. Pregunta (pensante), transferida a la pregunta A, la pregunta A es relativamente simple, Lao Kong tiene ideas y las codificó directamente, lo miramos y no hubo ningún problema, así que le pedimos que lo entregara: el automóvil se volcó y lo revisé cuidadosamente. Descubrí que Lao Kong se había caído. En una situación, lo cambié y entregué (WA de nuevo).

accidente

En este momento, Lao Yan se inspiró para la tercera pregunta, creó directamente el código y nos contó sus ideas, todos probamos algunos ejemplos y no hubo ningún problema, y ​​lo entregamos directamente (fue WA nuevamente por accidente), y esto Varias veces WA no fue un WA normal, sino una respuesta incorrecta en la prueba 1. Lo intentamos de nuevo y el mismo problema permaneció.

resolver

En este momento, sentí que podría no ser un problema con nuestro pensamiento, debería ser otro problema. Justo cuando íbamos a hacer otras preguntas, Lao Kong encontró el problema (más de media hora) y resultó que tenía que operar el archivo. , Usado freopen
{ nombre de función: función freopen , reasignar a otro archivo en el modo especificado. El modo se utiliza para especificar el método de acceso del nuevo archivo. Archivo de encabezado: stdio.h } Después de agregar freopen, estas dos preguntas se resolverán rápidamente.




Ingrese el estado

Para la siguiente pregunta E, Lao Yan encontró la idea directamente. Lao Yan y yo comenzamos a estudiar cómo escribir el código. Lao Kong tarareó una canción y probó el código de esta pregunta. Probé algunos ejemplos complicados. , Todo pasó, entregado directamente, una vez que AC todos están felices. Las siguientes dos preguntas no son difíciles. El problema común de los tres es que no entendemos el significado de las preguntas después de leer las preguntas varias veces. Después de un estudio cuidadoso, entendí las preguntas de ACL bajo la traducción de Lao Kong y Lao Yan. Más tarde, comenzamos a estudiar la pregunta B, AC nuevamente, un total de cinco preguntas AC, una pregunta mejoró con respecto a la última vez, siento que nuestro pequeño equipo todavía tiene mucho margen de mejora.

Temas aprendidos

Pregunta B

Inserte la descripción de la imagen aquí
Este título es una pregunta creativa, la respuesta es relativamente abierta, solo cumple con las condiciones, hay muchas formas de escribir
código AC

#include<bits/stdc++.h>
using namespace std;
int main() {
    
    
    int b, w;
    char s[2] = {
    
    '.', '@'};
    // freopen("black.in","r",stdin);
    // freopen("black.out","w",stdout);
    scanf("%d%d", &b, &w);
    if (b > w) {
    
    
        swap(b, w);
        swap(s[0], s[1]);
    }
    printf("%d %d\n", 2 * w, 3);//3可以改为任意一个比2大的数
    for (int i = 0; i < (w - b); i++)
    {
    
    
        printf("%c%c%c\n%c%c%c\n", s[1], s[1], s[1], s[1], s[0], s[1]);//只要注意不让s[0]隔断s[1]就行
    }
    for (int i = 0; i < b; i++)
    {
    
    
        printf("%c%c%c\n%c%c%c\n", s[1], s[1], s[1], s[0], s[0], s[0]);
    }
    return 0;
}

Pregunta C

Inserte la descripción de la imagen aquí
Esta pregunta se centra principalmente en la idea. A primera vista, parece una pregunta de cadena. De hecho, es más como una pregunta normal. La ley es: para encontrar el número de la misma letra en la cadena anterior en la cadena siguiente, se repetirá si n n veces, entonces para cada uno, reste n veces.
Código AC

#include <bits/stdc++.h>
using namespace std;
int main()
{
    
    
    //freopen("concatenation.in", "r", stdin);
    //freopen("concatenation.out", "w", stdout);
    int sum[210];
    char s1[100010], s2[100010];
    scanf("%s", s1);
    scanf("%s", s2);
    long long int n = strlen(s1), m = strlen(s2);
    int i;
    memset(sum, 0, sizeof(sum));
    for (i = 1; i < n; i++)
    {
    
    
        sum[s1[i]]++;
    }
    long long int counts = n * m;
    for (i = 0; i < m - 1; i++)
    {
    
    
        counts = counts - sum[s2[i]];
    }
    printf("%lld", counts);
    return 0;
}

Pregunta L

Inserte la descripción de la imagen aquí
Pregunta: Proporcione una matriz con un tamaño máximo de 100 * 100 para averiguar el número de direcciones ganadoras para cada cuadrícula. La dirección ganadora de cada cuadrícula puede ser de 0 a 4. Puede establecer el cambio de coordenadas mientras camina primero. Luego, resuelva directamente el problema con violencia (los datos no son grandes, solo calcule y súmelos)
Código AC

#include <stdio.h>
#include <stdlib.h>
int ax[4] = {
    
     0,0,-1,1 };
int ay[4] = {
    
     1,-1,0,0 };
int main() {
    
    
    //freopen("lucky.in", "r", stdin);
    //freopen("lucky.out", "w", stdout);
	int n, m;
	int a[110][110];
	scanf("%d %d", &n, &m);
	for (int i = 1; i <= n; i++)
	{
    
    
		for (int j = 1; j <= m; j++)
			scanf("%d", &a[i][j]);
	}
	int sum = 0;
	for (int i = 1; i <= n; i++)
	{
    
    
		for (int j = 1; j <= m; j++)
		{
    
    
			for (int k = 0; k < 4; k++)
			{
    
    
				int x = i + ax[k];
				int y = j + ay[k];
				int  f = 1;
				while (x >= 1 && x <= n&&y >= 1 && y <= m )
				{
    
    
					if (a[x][y] >= a[i][j])
					{
    
    
						f = 0;
						break;
					}
					x =x+ ax[k];
					y =y+ ay[k];
					
				}
				sum = sum + f;
			}
		}
	}
	printf("%d\n", sum);
    return 0;
}

Resumen y reflexión tras el partido

En esta competencia todos nos conocemos mucho, y poco a poco vamos adquiriendo una comprensión tácita, aún tenemos que mejorar nuestro nivel de inglés, de lo contrario será un problema leer y comprender las preguntas (inexplicablemente rimando). Todavía tenemos que entrenar más duro y aprender más algoritmos y bases matemáticas. Las preguntas en las competiciones reales son definitivamente mucho más difíciles que el entrenamiento habitual. Más que una coincidencia, sdutACM y acmer mejorarán cada vez más. ¡Venga! ! ! Ollie

Supongo que te gusta

Origin blog.csdn.net/rookie636/article/details/107700644
Recomendado
Clasificación