Codeforces Educativos Ronda 97 div2

A. Pregunta del
portal del esquema de marketing
: Dado un intervalo [l, r], tome un número a y haga cualquier número x mod a> a / 2 en el intervalo. Pregunte si existen tales números.
Idea : x mod a, el módulo obtenido cuando x <a es el mayor, por lo que el menor a es r + 1. Por lo tanto, solo es necesario juzgar l> a / 2 y el
código de línea es el siguiente :

import java.util.Scanner;
public class A {
    
    
	public static void main(String[] args) {
    
    
		Scanner sc=new Scanner(System.in);
		int t=sc.nextInt();
		while(t-->0) {
    
    
		int l=sc.nextInt();
		int r=sc.nextInt();
		if(l*2>r)	System.out.println("YES");
		else	System.out.println("NO");
		}
	}
}

B. Pregunta del
portal de cadenas binarias inversas
: le da una cadena binaria de longitud n, compuesta por 01 caracteres, y el número de 0 y 1 es n / 2, n / 2. Puede elegir subcadenas continuas de cualquier longitud para voltear. Ahora necesitas hacer que los caracteres adyacentes no sean iguales y preguntarte la idea del número mínimo de volteretas que necesitas realizar
:

  1. Los caracteres adyacentes no son iguales, 101,1010,01010, se puede encontrar que la cadena es simétrica según el número en el medio. La inversión asimétrica (entonces debe ser continua) puede hacer que los caracteres continuos sean discontinuos, como 1110010—1101010
  2. Ejemplo: 11101000, hay tres 1 consecutivos (dos subcadenas 1 de longitud 2) y tres 0 consecutivos (dos subcadenas 0 de longitud 2). La primera inversión de 10101100 tiene tres 1 consecutivos y tres 0 consecutivos. La segunda inversión: 10101010, sin números consecutivos. ¿Se puede inferir que el número de veces es la longitud continua menos uno
  3. Entonces, cuando la longitud continua a de 1 no es igual a la longitud continua b de 0
  4. Tales como: 110001, 1 subcadena continua a = 1,0 subcadena continua b = 2;
  5. La primera inversión es 100101, a = 0, b = 1. La segunda inversión f: 010101, a = 0, b = 0;
  6. Introduzca la respuesta como max (a, b);
import java.util.Scanner;
public class B{
    
    

	public static void main(String[] args) {
    
    
		Scanner sc = new Scanner(System.in);
		long t = sc.nextLong();
		while(t--!=0) {
    
    
			long n = sc.nextLong();	
			sc.nextLine();
			String s = sc.nextLine();
			
			long c=0;
			for(int i=1;i<n;i++) {
    
    
				if(s.charAt(i)==s.charAt(i-1)) {
    
    
					c++;
				}
			}
			System.out.println((c+1)/2);
		}
	}

}

Supongo que te gusta

Origin blog.csdn.net/ba7bc/article/details/109339123
Recomendado
Clasificación