Codeforces Educativos Ronda 102 (Clasificado para Div.2)

Al volver a casa después de las vacaciones, finalmente puedo jugar un emocionante CF con las luces encendidas ... La
situación: Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
calificación +113, el nombre finalmente cambió de color. (Soy demasiado bueno) Los
amigos que quieran jugar CF juntos pueden agregarme qq: 942845546, progresar juntos, puntuar juntos y dar la bienvenida al acoso (artes tradicionales).
Dirección de la competencia: Educational Codeforces Round 102 (Clasificado para la Div. 2)
A-Reemplazo de elementos
Idea para resolver problemas: Después de leer el problema, puede encontrar que hay dos situaciones que son consistentes.
1. Todos los números son menores o iguales a d
2. Los dos más pequeños Si la suma de los números es menor o igual que d, puede reemplazar todos los números mayores que d
para poder ordenar primero. Cuando el número mayor es menor o igual que d (lo que indica que todos los números son menores o iguales que d) o los dos números más pequeños son menores o iguales que d Según sea factible.

#include <bits/stdc++.h>
#define ll long long
using namespace std;
int t, n, d;
int a[110];
int main(){
    
    
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	cin >> t;
	while(t--){
    
    
		cin >> n >> d;
		for(int i = 1; i <= n; i++) cin >> a[i];
		sort(a + 1, a + 1 + n);
		if(a[n] <= d || a[1] + a[2] <=d) cout << "YES" << endl;
		else cout << "NO" << endl;
	}
	return 0;
}

B-String LCM
Idea para la resolución de problemas: Obviamente, en el caso de String LCM en este par de cadenas, la longitud de String LCM es el mínimo común múltiplo de la longitud de este par de cadenas. Entonces, podemos usar "razonablemente" las características de la cadena: sumar y restar directamente la cadena original, cuando la longitud de las dos cadenas más la cadena original es el mínimo común múltiplo de la longitud del par de cadenas, si este Si las dos cadenas procesadas son iguales, puede generar una de ellas (las dos cadenas son exactamente iguales) y generar "-1" si no son iguales.

#include <bits/stdc++.h>
#define ll long long
using namespace std;
int q;
int ls, lt, lc, cs;
string s, t, ss, tt;
int main(){
    
    
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	cin >> q;
	for(int i = 1; i <= q; i++){
    
    
		cin >> s >> t;
		ls = s.size();
		lt = t.size();
		lc = (ls * lt) / __gcd(ls, lt);
		ss = s;
		tt = t;
		for(int j = 1; j <= lc / ls - 1; j++){
    
    
			s += ss;
		}
		for(int j = 1; j <= lc / lt - 1; j++){
    
    
			t += tt;
		}
		if(s == t) cout << s << endl;
		else cout << "-1" << endl;
	}
	return 0;
}

C-No More Inverssions
idea de resolución de problemas: Personalmente creo que la dificultad de este problema radica en leer el problema ... así que no explicaré el significado del problema aquí (jaja)
Obviamente este es un problema de construcción, primer resultado 1 a 2 * kn Luego salida k a 2 * k-n (menos)

#include <bits/stdc++.h>
#define ll long long
using namespace std;
int t, k, n;

int main(){
    
    
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	cin >> t;
	while(t--){
    
    
		cin >> n >> k;
		for(int i = 1; i < 2 * k - n; i++){
    
    
			cout << i << ' ';
		}
		for(int i = k; i >= 2 * k - n; i--){
    
    
			cout << i << ' ';
		}
		cout << endl;
	}
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/qq_42920035/article/details/112646367
Recomendado
Clasificación