2020.10.24 Grupo 5 de popularización de Niukewang + grupo de mejora 5 (pregunta 1)

Juego de simulación 5 (universal)

Número de pregunta tema
T1 compras
T2 intercambiar
T3 Movimiento mínimo
T4 Ludo

1. Compras

Ideas para resolver problemas

violencia

Código AC

#include<cstdio>
using namespace std;
int t,n,k,x;
int main()
{
    
    
	scanf("%d",&t);
	while(t--)
	{
    
    
		scanf("%d%d%d",&n,&k,&x);
		int o=0,s=0;
		while(n>0)//暴力
		{
    
    
			n--;//数量-1
			o++;
			s+=x;//钱
			if(o>=k){
    
    n--;o=0;}
		}
		printf("%d\n",s);
	}
	return 0;
}

2. Intercambio

Ideas para resolver problemas

Copie sy agréguelo al final de s,
luego búsquelo uno por uno para
ver el intervalo más largo de todos los 1.

Nota: Tome min con la longitud inicial de s; de lo contrario, la muestra será incorrecta si es 1

Código AC

#include<iostream>
#include<cstdio>
using namespace std;
int ans,o;
string s;
int main()
{
    
    
	cin>>s;
	s+=s;//复制
	int l=s.size();
	for(int i=0;i<l;i++)
	{
    
    
		if(s[i]=='1')//求全是1的区间长度
		{
    
    
			if(s[i]==s[i-1])o++;
			else o=1;
		}
		else o=0;
		ans=max(ans,min(l/2,o));//取min
	}
	printf("%d",ans);
	return 0;
}

3. Movimiento mínimo

Ideas para resolver problemas

Primero podemos encontrar su valor promedio.
Si el valor promedio no es un número entero, la salida -1
y luego encontramos el número de veces desde cada punto al promedio.
Recuerde que si se cambia este punto, el siguiente punto debe cambiarse en la dirección opuesta.

Código AC

#include<cstdio>
#include<cmath>
using namespace std;
long long t,a[100005];
int main()
{
    
    
	scanf("%lld",&t);
	while(t--)
	{
    
    
		long long n,s=0,ans=0;
		scanf("%lld",&n);
		for(long long i=1;i<=n;i++)
		{
    
    
			scanf("%lld",&a[i]);
			s+=a[i];//求和
		}
		if(s%n!=0)printf("-1\n");//平均值特判
		else
		{
    
    
			s/=n;
			for(long long i=1;i<=n;i++)
			{
    
    
				ans+=abs(s-a[i]);//加距离
				a[i+1]-=(s-a[i]);//减距离
			}
			printf("%lld\n",ans);
		}
	}
	return 0;
}

4. Ajedrez volador

Ideas para resolver problemas

Ofrecer ideas ZYCdalao
Inserte la descripción de la imagen aquí

No hecho

Juego de simulación 5 (mejora)

Prólogo: lo hice inexplicablemente, pensando que podría aumentar la calificación, pero también redujo mucho

Número de pregunta tema
T1 Cuenta de trillizos

1. Cuenta triple

Ideas para resolver problemas

Enumere cada número violentamente, simplemente
reduzca el rango de enumeración.

Código AC

#include<cstdio>
using namespace std;
int n,ans;
int main()
{
    
    
    scanf("%d",&n);
    for(int i=1;i<=n-2;i++)
    {
    
    
        int a=i;//a的值
        for(int j=2;j<=n/a;j++)
        {
    
    
            int b=a*j;  //b的值
            for(int k=2;k<=n/b;k++)
                ans++;
        }
    }
    printf("%d",ans);
    return 0;
}

para resumir

Estimación del examen (universal)
: 100 + 100 + 100 + 0 = 300
Real: 100 + 100 + 80 + 0 = 280 Estimación del
examen (mejora)
: 50
Real: 100
puede intentar mejorar, mucho tiempo

Gracias

Supongo que te gusta

Origin blog.csdn.net/weixin_45524309/article/details/109340090
Recomendado
Clasificación