Advertisement
juanjo12x

Lab2_Algoritmia_P3_Wood_Cutting

Apr 13th, 2014
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.82 KB | None | 0 0
  1. // Uso de DP para el problema Wood Cutting
  2. #include<stdio.h>
  3. #include<limits.h>
  4.  
  5. // Funcion maximo para sacar 2 enteros
  6. int max(int a, int b) { return (a > b)? a : b;}
  7.  
  8. /* Retorna el maximo beneficio para una madera de precio[i] por corte [i] */
  9. int cutRod(int price[], int n)
  10. {
  11.    int val[n+1];
  12.    val[0] = 0;
  13.    int i, j;
  14.  
  15.    // Crea la tabla y usa la tecnica Bottom up
  16.  
  17.    for (i = 1; i<=n; i++)
  18.    {
  19.        int max_val = INT_MIN;
  20.        for (j = 0; j < i; j++)
  21.          max_val = max(max_val, price[j] + val[i-j-1]);
  22.        val[i] = max_val;
  23.    }
  24.  
  25.    return val[n];
  26. }
  27.  
  28. /* Programa principal*/
  29. int main()
  30. {
  31.     int arr[] = {1, 5, 8, 9, 10, 17, 17, 20};
  32.     int size = sizeof(arr)/sizeof(arr[0]);
  33.     printf("El máximo valor obtenible es : %d\n", cutRod(arr, size));
  34.     getchar();
  35.     return 0;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement