47 sistema de interceptación mínimo

47  sistema de interceptación mínimo

Autor:  xxx Plazo:  1S secciones:  matriz unidimensional

Descripción del problema:

Un país con el fin de defenderse de los ataques de misiles enemigos, para desarrollar un sistema de interceptación de misiles. Sin embargo, un sistema de este tipo de misiles interceptores tiene un defecto: Aunque se trata de las primeras rondas para llegar a cualquier altura, pero cada concha y no debe llegar antes de que la situación se puso de altura.

Un día, los ataques con misiles de radar enemigo, si el número de sistemas también, es probable que no conduce a interceptar todos los misiles. Por lo tanto, de acuerdo con misiles de radar altura requiere la preparación de un número correspondiente de interceptores.

 

Por ejemplo, la altura del misil fueron los siguientes:

5 3 4 2 4 1

Un sistema de interceptar los primeros proyectiles han afectado a la altura Local 5, donde la altura de la segunda golpeó conchas 3.

Pero la tercera posición es menor que la altura de los proyectiles cayeron 4 (porque cada concha y no fuera de su alcance antes de que la altura), a fin de utilizar un segundo conjunto de sistema interceptor.

Un segundo conjunto de transmisor conchas sistema de interceptación 4 y una altura a la altura hit 2 (de hecho, para interceptar una altura de carcasa 2, utilizando el primer conjunto o el segundo conjunto puede interceptación del sistema),

El tercer conjunto de interceptores conchas de lanzamiento para golpear la altura de la altura de 4 y 1 (de hecho, para interceptar la altura de la carcasa 1, tres sistema de interceptación puede ser).

Por lo tanto, un total de tres sistema interceptor.

 

Otro ejemplo es la altura del misil fueron los siguientes:

5 3 4 2 3 1

Un sistema de interceptar los primeros proyectiles han afectado a la altura Local 5, donde la altura de la segunda golpeó conchas 3.

Pero la tercera posición es menor que la altura de los proyectiles cayeron 4 (porque cada concha y no fuera de su alcance antes de que la altura), a fin de utilizar un segundo conjunto de sistema interceptor.

El segundo conjunto de interceptores conchas golpeó el lanzamiento de gran altura 4.

Y luego para interceptar una altura de 2 conchas, el uso de la primera serie o el segundo conjunto de interceptores puede ser, pero también teniendo en cuenta la necesidad de proyectiles de interceptación después, aquí usamos el primer conjunto de interceptores (por qué no usar el segundo set, lo quería ).

Y luego a la altura de intercepción de las conchas 3, utilizamos el segundo conjunto de sistema interceptor.

Y luego interceptar la altura de la carcasa 1, el primer y segundo conjuntos de sistemas puede ser, vamos a utilizar el segundo conjunto de barras.

Por lo tanto, un total de sólo dos sistema de interceptación, el primer conjunto que bloquea 532, el segundo conjunto 431 es interceptado.

 

Por favor, de acuerdo con los datos de altura dados para ayudar a calcular la cantidad que el sistema requiere un conjunto mínimo de interceptores.

 

 

Introduzca una descripción:

En primer lugar, los datos de entrada incluye un número entero T (1 <= T <= 100) ,, representa el número de casos de prueba.

La primera línea de cada datos de prueba es un número entero N (1 <= N <= 1,000), que representa un número total de misiles (número entero positivo), seguido de secuencia digital N que representa una altura de vuelo del misil, en el que el radar datos de altura dado es un número entero positivo de no más de 10.000, separados por espacios.

Descripción Salida:

Todos los datos de salida correspondientes a cada número de misiles interceptores mínimo de conjuntos para estar equipado con una interceptores tales misiles.

Cada salida por línea, la primera línea con el extremo de la línea, sin espacios.

Ejemplo de entrada:

2
8
389 207 155 300 299 170 158 65
5
100 50 200 300 400

Resultado de muestra:

2
4

 

 

Ideas resolución de problemas: Esta pregunta es una que comienza mal (de hecho, no entendía). Debe entenderse adecuadamente es la siguiente:

1, para defenderse de los ataques enemigos con misiles, sistemas del sistema de defensa del país diseñados

2, que establece los sistemas de defensa, de espera (ha trabajado)

3, cada sistema de defensa bala de cañón no puede lograrse antes de que la situación se alturas

4, el sistema requiere un número mínimo de conjuntos de interceptación

 

El segundo de escondido en lo profundo (tal vez entiendo la capacidad limitada), el segundo es el énfasis se ha puesto en estado de alerta si un determinado conjunto de reiniciar el sistema no va a funcionar, en otras palabras,

no puede resistir a la altura máxima empezar de nuevo. Artículo clave, la cuarta condición es también un importante requisitos de la materia. El artículo también requiere que cada vez que nos resistimos conchas

Cada uno tendrá un pre-existente defensas tipo (de acuerdo con la ronda actual puede soportar orden ascendente altamente), con el fin de no perder un tiempo para resistir a la altura del sistema de defensa más bajo

Comenzó a buscar, si cumplen con los requerimientos de la defensa de misiles de defensa (altura superior o igual altura), entonces ningún nuevo sistema de defensa, pero es necesario conjunto de elevación de misiles basado en el sistema actualizado

Siguiente ronda contra la altura (para cumplir la tercera condición).

 

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <math.h>
 4 #include <string.h>
 5 #include <ctype.h>
 6 
 7 #define maxn 1005
 8 
 9 int rec[maxn];
10 int ans[maxn];
11 void mySort(int ans[],int len);
12 int main(){
13     
14     int t,n,i,j;
15     scanf("%d",&t);
16     int len = 0;
17     while(t--){    
18         scanf("%d",&n);
19         //printf("n=%d\n",n);
20         len = 0;
21         for(i=1;i<=n;i++){
22             scanf("%d",rec+i);
23         }
24         ans[0] = rec[1];
25         len ++;
26         for(i=2;i<=n;i++){
27             int flag = 0;//默认需要新增系统
28             //监测每个炮弹之前将系统排序
29             mySort(ans,len);
30             for(j=0;j<len;j++){
31                 if(ans[j]>rec[i]){
32                     ans[j] = rec[i];
33                     flag = 1;
34                     break;
35                 }
36             }
37             if(flag == 0){
38                 ans[len++] = rec[i];
39             }
40         }
41         printf("%d\n",len);
42         
43         
44 
45     }
46     return 0;
47 }
48 
49 void mySort(int ans[],int len){
50     int i,j;
51     for(i=len-2;i>=0;i--){
52         for(j=0;j<=i;j++){
53             if(ans[j]>ans[j+1]){
54                 int temp = ans[j];
55                 ans[j] = ans[j+1];
56                 ans[j+1] = temp;
57             }
58         }
59     }
60 }

 

Supongo que te gusta

Origin www.cnblogs.com/ManOK/p/12590370.html
Recomendado
Clasificación