• Viernes 8 de Noviembre de 2024, 08:26

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - carola_mach

Páginas: [1]
1
Java / arraylist mergesort
« en: Sábado 23 de Mayo de 2009, 04:00 »
codigo arraylist con merge sort
rapido y facil de entender

2
Java / la mochila
« en: Viernes 22 de Mayo de 2009, 00:22 »
quien tiene el codigo de lamochila

3
Java / Duda sobre Codigo
« en: Miércoles 26 de Noviembre de 2008, 04:05 »
esto tengo en codigo

nose como empezarlo para q se explique bien el codigo
public static final int agua = -1;
public static final int libre = 1;
public static final int fueraPantano = -2;
public static final int enteroMaximo = 999999;
public static final int energia[][] = { { 7, 6, 5, 6, 7 },
                                         
               { 6, 3, 2, 3, 6 }, { 5, 2, 0, 2, 5 }, { 6, 3, 2, 3, 6 },
               { 7, 6, 5, 6, 7 } };
     public static void main(String[] args) {
          int c = 0, r = 0, cs = 0, rs = 0, ct = 0, rt = 0, b;
          int c1, r1, c2, r2;
          int i, j, k;
          int[][] pantano = null;
          int[][] costo = null;
          Scanner in = new Scanner(System.in);
          // leer las dimensiones del pantano
          c = in.nextInt();
          r = in.nextInt();
          while (c > 0) {
               // crear el pantano y matriz de costos
               pantano = new int[r + 4][c + 4];
               costo = new int[r + 4][c + 4];
               // indicar que la fila 0 y columa 0
               // estan fuera del pantano
               for (i = 0; i < c + 4; i++)
                   pantano[0] = pantano[1] = fueraPantano;
               for (i = 0; i < r + 4; i++)
                   pantano[0] = pantano[1] = fueraPantano;
               for (i = 2; i < c + 4; i++)
                   pantano[r + 2] = pantano[r + 3] = fueraPantano;
               for (i = 2; i < r + 4; i++)
                   pantano[c + 2] = pantano[c + 3] = fueraPantano;
               // Marcar las celdas del pantano como libres
               // y los costos como un entero grande
               for (i = 2; i < r + 2; i++) {
                   for (j = 2; j < c + 2; j++) {
                       pantano[j] = libre;
                       costo[j] = enteroMaximo;
                   }
               }
               // leer el origen y el destino
               cs = in.nextInt();
               rs = in.nextInt();
               ct = in.nextInt();
               rt = in.nextInt();
               // leer el numero de zonas acuosas
               b = in.nextInt();
               for (i = 0; i < b; i++) {
                    // leer las cordenadas de la region
                    c1 = in.nextInt();
                    r1 = in.nextInt();
                    c2 = in.nextInt();
                    r2 = in.nextInt();
                    c1 += 1;
                    c2 += 1;
                    r1 += 1;
                    r2 += 1;
                    for (k = r1; k <= r2; k++) {
                        for (j = c1; j <= c2; j++) {
                             pantano[k][j] = agua;
                        }
                    }
               }
               cs++;
               rs++;
               ct++;
               rt++;
               // ver(pantano,r, c);
               // ver(costo,r, c);
               dijkstra(pantano, costo, rs, cs, rt, ct);
               if (costo[rt][ct] < enteroMaximo)
                    System.out.println(costo[rt][ct]);
               else
                    System.out.println("Impossible");
               c = in.nextInt();
               r = in.nextInt();
          }
     }
}
  public static void dijkstra(
       int[][] pantano, int[][] costo,
       int rs, int cs,int rt, int ct) {
    int rv, cv;
    int i, j;
    Nodo filcol;
    PriorityQueue<Nodo> cp = new PriorityQueue<Nodo>();
    costo[rs][cs] = 0;
    rv = rs;
    cv = cs;
    cp.add(new Nodo(0, rs, cs));
    while (!cp.isEmpty()) {
        filcol = cp.remove();
        rv = filcol.fila;
        cv = filcol.col;
        for (i = -2; i < 3; i++) {
             for (j = -2; j < 3; j++) {
                 if (pantano[rv + i][cv + j] == libre) {
                     if (costo[rv + i][cv + j] >
                       (costo[rv][cv] + energia[i + 2][j + 2])) {
                         costo[rv + i][cv + j] = costo[rv][cv]
                                 + energia[i + 2][j + 2];
                         cp.add(new Nodo(costo[rv + i][cv + j],
                                         rv + i, cv + j));
                     }
                 }
             }
        }
    }
}
      PriorityQueue<Nodo> cp = new PriorityQueue<Nodo>();
   La clase nodo se de ni como sigue:
                         o
class Nodo implements Comparable<Nodo> {
    int costo, fila, col;

  public Nodo(int costo, int fila, int col) {
      this.costo = costo;
      this.fila = fila;
      this.col = col;
  }
  public int compareTo(Nodo other) {
      return costo - other.costo;
  }
}

4
C/C++ / codigo me tira un error
« en: Miércoles 19 de Noviembre de 2008, 23:55 »
lala
cierre tema

5
Papelera / alguien me explica como es este problema
« en: Domingo 9 de Noviembre de 2008, 17:14 »
Containers
    En el terminal de carga de un puerto se deben almacenar grandes containers, los que eventualmente son
cargados en un barco para ser transportados. Los containers que llegan al puerto por tren o cami ́n, sono
apilados en el terminal hasta ser embarcados.
    Los barcos cargan una gran cantidad de containers. El tiempo de carga de un barco depende de la
ubicacion en el terminal de carga, de los containers que deben ser subidos. El tiempo de carga aumenta si
       
el container que se debe subir al barco no está al tope de una pila, y para poder subirlo al barco hay que
                                               
primero sacar todos los containers que esten sobre él.
                                             
    El terminal de carga necesita un plan para apilar los containers, de modo tal de minimizar los tiempos
de carga de los barcos. El plan debe permitir cargar cada barco, usando sólo containers que se encuentran
                                                                             
al tope de alguna pila, minimizando la cantidad de pilas necesarias en el terminal.
    En este problema, se conoce de antemano el orden en que los barcos deben ser cargados, y el orden en que
los containers llegan al terminal. Cada barco es representado por una letra mayúscula entre A y Z (inclusive),
                                                                                 
y los barcos son cargados en orden alfabético. Cada container esta ́ etiquetado con una letra mayáscula, que
                                     
indica en que ́ barco debe ser cargado. No hay lımite a la cantidad de containers que pueden ser puestos en
una misma pila.
Entrada
    La entrada contiene múltiples casos de prueba. Cada caso consiste de una sola lınea, que contiene entre
1 y 1000 letras mayu ́sculas, representando el orden de llegadoa de un grupo de containers. Por ejemplo, la
                     

 lınea ABCA indica que el primer container que llega debe ser cargado en el barco A, el segundo en el barco B,
el tercero en el barco C, el ultimo en el barco A. Cuando estos containers han llegado al terminal, deben ser
                             
cargados en los barcos. El primer barco en ser cargado es el A, el segundo es el B, y así sucesivamente.
                                                                                       
    Una lınea con la palabra end sigue al ultimo caso de prueba, para indicar el fin de la entrada.
                                              ́
    Un ejemplo de entrada es la siguiente:
A
CBACBACBACBACBA
CCCCBBBBAAAA
end
    Estos datos deben ser leıdos desde la entrada estándar, sin menues ni opciones.
                                                           
Salida
    Para cada caso de prueba de la entrada, su algoritmo debe imprimir el número del caso, seguido de la
                                                                               
cantidad mınima de pilas que se requieren armar en el terminal de carga, antes de empezar a cargar los
barcos, de modo tal de minimizar el tiempo de carga.
    Para la entrada de ejemplo, la salida debiera ser:
Caso 1: 1
Caso 2: 3
Caso 3: 1

Páginas: [1]