Guest User

Untitled

a guest
Dec 10th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. //11069 - A Graph Problem
  2. //UVA
  3.  
  4. /*
  5. 11069 - A Graph Problem
  6. Combinatorics
  7. 2
  8. Caso seja colocado um vertice na posição i, temos duas possibilidades:
  9. Colocar um vértice na posição i-2
  10. Colocar um vértice na posição i-3
  11.  
  12. Perceba que colocar vértices em quaisquer outras posicoes tornaria o arranjo inválido.
  13. Então suponha f(n) como sendo número de maneiras de colocar n vértices.
  14. f(n) = f(n-2) + f(n-3)
  15.  
  16. Casos base:
  17. f(1) = 1
  18. f(2) = 2
  19. f(3) = 2
  20. */
  21.  
  22.  
  23. #include <cstdio>
  24. #include <cstdlib>
  25. #include <string>
  26. #include <cmath>
  27. #include <cstring>
  28. #include <algorithm>
  29. #include <utility>
  30. #include <queue>
  31. #include <stack>
  32. #include <vector>
  33. #include <map>
  34. #include <iostream>
  35.  
  36. #define ln printf("\n")
  37.  
  38. using namespace std;
  39.  
  40. int n;
  41. int dp[100];
  42.  
  43. bool read(){
  44. if(scanf("%d", &n) == EOF) return false;
  45.  
  46. return true;
  47. }
  48.  
  49.  
  50.  
  51. void process(){
  52. printf("%d\n", dp[n]);
  53. }
  54.  
  55. int main(){
  56. //freopen("in", "r", stdin);
  57. //int cases; scanf("%d", &cases);
  58.  
  59. dp[1] = 1;
  60. dp[2] = 2;
  61. dp[3] = 2;
  62.  
  63. for(int i = 4; i < 80; i++){
  64. dp[i] = dp[i-2] + dp[i-3];
  65. }
  66.  
  67. while(/*cases-- && /**/ read()){
  68. process();
  69. }
  70.  
  71. //while(1);
  72.  
  73. return 0;
  74. }
Add Comment
Please, Sign In to add comment