Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. /*
  2. subsir crescator de lungime maxima
  3. n=8
  4. V={5,12,456,21,7,910}
  5. S1=5,12,456,910
  6.  
  7. numere de pe locuri in ordine ce formeaza un sir crescator
  8.  
  9. lungimea maxima a sirului care se poate forma este 4
  10.  
  11. rezolvare
  12.  
  13. utilizam un vector in care memoram lungimile maxime ale subsirurilor care se pot forma incepand cu element de pe un anumit loc.
  14. L[i]=k => lungimea maxima a subsirului care se poate forma incepand cu V[1] este k
  15.  
  16. observam ca
  17. L[n]=1 adica lungimea maxima a subsirului care se poate forma incepand cu ultimul element V[n] este 1 (subsirul este froma doar din acesta)
  18.  
  19. completam L de la locatie n-1 pana la locatie de index 1.
  20.  
  21. tinem cont de faptul ca lungimea maxima care se poate forma cu V[i] este 1 ( V[i] impunem sa faca parte din subsir ) + lungimea celui mai lung
  22. care se poate forma incepand cu un numar V[j] ulterior lui V[i] (adica urmator lui V[i] in sir) cu conditia ca acest V[j]>=V[i]
  23.  
  24. in concluzie : completarea decurge astfel
  25. pentru i=n-1 pana la 1 executa
  26. L[i]=1
  27. maxim=0
  28. pentru j=i+1 pana la n executa
  29. daca L[j]>=maxim si V[j]>=V[i] atunci executa
  30. maxim=L[j]
  31. sfarsit
  32. sfarsit
  33. L[i]=L[i]+max
  34. sfarsit
  35.  
  36. raspunsul la problema formulata este dat de valoarea maxima memorata in L dupa completarea acestuia
  37. solutie=0
  38. pentru i=1 pana la n executa
  39. daca L[i]>=solutie atunci
  40. solutie=[i]
  41. sfarsit
  42. afiseaza solutie
  43. */
  44. #include <iostream>
  45. using namespace std;
  46. int main()
  47. {
  48.  
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement