El diseño del programa de pensamiento y de práctica operaciones Week4 (medio / Smart Class)

El miedo a la DDL - Un

ZJM hay n puestos de trabajo, cada trabajo tiene su propia DDL, si ZJM no se ha hecho el trabajo antes de que el DDL, entonces el maestro deducirá este trabajo todos los puntos habituales.

Así ZJM quieren saber cómo organizar el orden de las tareas a ceder un poco menos puntos como sea posible.

Por favor ayudarlo!

Entrada

Entrada de prueba de la t. La primera línea de entrada es un único entero T, se encontró en el número de casos de prueba.

Cada caso de prueba para comenzar un número entero positivo N (1 <= N <= 1000), indica el número de puestos de trabajo.

A continuación, dos líneas. La primera línea contiene N enteros que representan el DDL, la siguiente fila que contiene N números enteros que representan puntos de la hebilla.

Salida

Para cada caso de prueba, se debe reducir la salida de la puntuación total mínimo, cada línea de la prueba.

Ejemplo de entrada

3
3
3 3 3
10 5 1
3
1 3 1
6 2 3
7
1 4 6 4 2 4 3
3 2 1 7 6 5 4

Ejemplo de salida

0
3
5

ideas:

De acuerdo con el algoritmo voraz, a partir de la mayor DDL, DDL será todo para los trabajos de hoy añadido al montón, y luego seleccionar entre el valor actual del almacenamiento dinámico máximo para asegurar que cada selección es el valor más grande para satisfacer las condiciones.

proceso Ergódica es como sigue

for(int i=maxDay; i>0; i--) {
   for(int j=0; j<n; j++) {
      if(ddl[j]==i) {
         heap.push(t[j]);
      }
   }
   int tmp = 0;
   if(heap.size()) {
      tmp = heap.top();
      heap.pop();
   }
   s-=tmp;
}

B - cuatro columnas

ZJM tiene cuatro columnas A, B, C, D, cada columna tiene el número de dígitos n. ZJM una serie tomada de cada número de la columna respectiva, le gustaría saber cómo muchos tipos de programas tales que el número de 4 y 0.

Cuando un número de columnas tiene la misma pluralidad de números, a tratarlos como un número diferente.

Por favor ayudarlo!

Entrada

La primera línea: n (número representativo del número de columnas) (1≤n≤4000)

El n-ésimo fila siguiente, el i-ésimo fila de cuatro números, cada número de columnas A, B, C, D en el i-ésimo dígito (dígito 2 a la potencia de no más de 28)

Salida

El número de combinaciones diferentes de salida.

Ejemplo de entrada

6
-45 22 42 -16
-41 -27 56 30
-36 53 -37 77
-36 30 -75 -46
26 -38 -10 62
-32 -54 -6 45

Ejemplo de salida

5

Insinuación

Explicación de la muestra: (-45, -27, 42, 30), (26, 30, -10, -46), (-32, 22, 56, -46), (--32, 30, -75, 77 ), (-32, -54, 56, 30).

pensamiento

Enumeración de A y B y obtener todos ellos compuesto de matriz ab, y luego ordenarlos. C y D y luego el recorrido, el recorrido, desde ab ordenó array, es posible encontrar la posición opuesta a la primera hora y el número de la última aparición en el ab por medio, la distancia entre ellos es el número inverso de número, ans + = a.

En el que, find_first () Función:

int find_first(int p){
   int right = n*n-1;
   int left = 0;
   int mid;
   int ans = -1;
   while(left<=right){
      mid = (right+left)/2;
      if(ab[mid]<p){
         left = mid+1;
      }
      else if(ab[mid]>p){
         right = mid-1;
      }
      else{
         ans = mid;
         right = mid - 1;
      }
   }
   return ans;
}

función find_final ()

int find_final(int p){
   int right = n*n-1;
   int left = 0;
   int mid;
   int ans = -1;
   while(left<=right){
      mid = (right+left)/2;
      if(ab[mid]<p){
         left = mid+1;
      }
      else if(ab[mid]>p){
         right = mid-1;
      }
      else{
         ans = mid;
         left = mid + 1;
      }
   }
   return ans;
}

C - TT misterio regalo

TT es un amantes de los gatos graves, canal de gato en el complacer a diario en la estación B.

Un día, un amigo ZJM decidió TT TT un problema, si TT puede resolver este problema, ZJM va a comprar un lindo gato dio TT.

Resumen Se da array gato [i] un número N, y generar una nueva ans array [i] con la matriz. Se define como la nueva matriz para cualquier i, j e i = j, son ans [] = abs (cat [i] - gato [j]) !, 1 <= i <j <= N. Esta nueva matriz. Determinar la mediana, a continuación, la mediana es la especie (LEN + 1) / 2 que corresponde al número de posición, '/' es un redondeo.

TT deseando desesperadamente gato lindo pájaro, ¿puedes ayudarlo?

Entrada

múltiples conjuntos de entradas, cada entrada de un N, el número N expresado, después de la entrada de una secuencia de gato longitud N, gato [i] <= 1E9, 3 <= n <= 1e5

Salida

Salida de nueva matriz American National Standard mediana

Ejemplo de entrada

4
1 3 2 4
3
1 10 2

Ejemplo de salida

1
8

ideas:

Para la nueva matriz, para encontrar el índice (LEN + 1) a una posición correspondiente a un convertidor digital / 2, la respuesta debe estar entre min y max, se pueden realizar para encontrar un número entre min y max, ya que el número entre el nuevo número de serie de la matriz se incrementa, de modo que el índice se puede encontrar por los puntos medios de los dos métodos, y para cada número de índice, si el gato ordenar la matriz, se puede convertir en el ans ans [] = cat [j] -cat [i ], es decir, gato [j] = ans [] + gato [i], i enumeración tan satisfactorio un gato [j] <= ans [] + gato [se obtiene i], y j es el número del número actual de número de serie, y el gato [j] es cada vez mayor, que se puede encontrar por medio de cumplir las condiciones <= j última relación, a fin de obtener el número de serie de cada número, número de serie en la mediana es la respuesta.

En el que J se obtiene como una función de la última

int getMaxJ(int i,int p) {
   int r = n-1;
   int l = i+1;
   int mid;
   int ans = -1;
   while(l<=r){
      mid = (l+r)>>1;
      if(a[mid]<=p+a[i]){
         ans = mid;
         l = mid+1;
      }
      else{
         r = mid - 1;
      }
   }
   return ans;
}

Obtenido como una función del número

int getNum(int p){
   int c = 0;
   for(int i=0;i<n;i++){
      int tmp = getMaxJ(i,p);
      if(tmp!=-1){
         c+=(tmp-i);
      }
   }
   return c;
}

Supongo que te gusta

Origin www.cnblogs.com/mopa/p/12528295.html
Recomendado
Clasificación