Sunteți pe pagina 1din 3

1.

VARIANTA 18-EX 5
Graf G cu 8 arce
Elimin 0 arce--- 1 graf (initial) Combinari de 8 luate cate 0
Elimin 1 arc---8 grafuri partiale, Combinari de 8 luate cate 1
Elimin 2 arce-nr de grafuri partiale=Combinari de 8 luate cate 2
Elimin 3 arce Combinari de 8 luate cate 3
….
Elimin 8 arce Combinari de 8 luate cate 8
(1+1)8=28 grafuri partiale pentru un graf cu 8 arce

2. int preferabil
3. umplerea unei matriciformula magica in functie de i si j sau
1 6 11 16
2 7 12 17
3 8 13 18
for(i=0 ;i<3 ;i++)
for(j=0 ;j<4 ;j++)
if(j==0) a[i][j]=i+1 ;
else a[i][j]=a[i][j-1]+5;

4. matricea a6 x 6
Diagonala secundara:a[0][5]=…, a[1][4]=……..a[5][0]=…

5. Pseudocod- instructiuni repretitive


Cu test intial- cat timp CL executa I
Cu test final-
repeta I pana cand CL
executa I cat timp CL
Cu contor—pentru-executa

x>0 si y<=10 ---> not(x>0 si y<=10) SAU x<=0 sau y>10

6. BK
Solutia are forma bxye x din multimea a,b,c,d,e, y din multimea b,c,d-5*3 nr total de solutii
Solutia are forma 2xy7, x<y, x,y din multimea 3,4,5,6 --nr total de solutii=combinari de 4 luate cate 2=6

7. Grafuri euleriene(ciclu prin toate muchhile) ->graf conex cu toate gradele pare
Grafurile hamiltoniene(ciclu prin toate nodurile) verfic daca gradul oricarui nod este >=n/2

8. Formule din grafuri


GRAFURI NEORIENTATE n noduri si m muchii
Suma gradelor=2*m
M=n*(n-1)/2 muchii in graf complet

GRAFURI ORIENTATE
Suma gradelor interne=suma gradelor externe=m
M=n*(n-1)arce in graf complet
In arbori (graf conex, fara cicluri) m=n-1

PROBLEME DE EFICIENTA
Sortarea clasica a vectorilor nu este eficienta, aprox n*n/2 operatii
Sortarea prin vector de frecventa este eficienta cu conditia ca numerele sa fie mici
4, 3, 2, 32, 3, 6, 4, 7, 7, 5

V=0 0 1 1 2 1 1 2 0 0….1 0 0 vector de freceventa


for(i=0 ;i<100;i++)
While(v[i]){ cout<<i<<” “;v[i]--;} afisarea crescatoare a valorilor din sirul initial

Povestea III3. A) http://www.infobits.ro/bacalaureat-la-informatica-2015/bac-la-info-2015.php?


page=2
EXEMPLU
Algoritmul de rezolvare propus citește, unul câte unul, numerele din fișier, analizând paritatea fiecăruia:
întâlnirea unui număr par va duce la "prelungirea" secvenței curente, iar întâlnirea unui număr impar va
conduce la trecerea la o nouă secvență. La finele oricărei secvențe se analizează lungimea ei, în vederea
memorării lungimii maxime.
Eficiența algoritmului, ca timp de executare, constă în faptul că parcurgem o singură dată șirul. Deoarece
numărul de valori din fișier (1000000) este dimensiunea care contează în problemă, spunem că am
obținut un algoritm liniar. Ca spațiu de memorie, soluția propusă este eficientă, deoarece utilizează doar
variabile simple.
Siruri de caractere- tipuri de probleme
1. Prelucrare de cuvinte –strtok(+ strcat in alt sir)
2. Prelucrare pe fiecare caracter in parte—for(i=0 ;i<strlen(s);i++) PRELUCRAM s[i] (caracterul
curent
3. Construirea unui sir caracter cu caracter-- for(i=0 ;i<strlen(s);i++) if..s[i] vocala-s2[j]=s[i];j++
…….la final s2[j]=0
4. Vector de cuvinte char v[11][101]---maxim 10 cuvinte, maxim 100 de caractere intr-un cuvant, in
instr v[i]-cuvantul curent

EFICIENTA VARIANTE 1-20


N=nr datelor de intrare
1. Siruri recurente O(n) algoritm liniar
2. Secvente O(n)
3. Interclasare O(n+m)
4. Kanadi-suma maxima/minima de numere neconsecutive O(n)
5. Cautarea binara(inclusiv pentru [sqrt[n]) O(log2(n))
6. Vector de frecventa O(n)
7. Generarea numerelor in care cifrele au anumite proprietati
8. Algoritmi constanti-prin formule- O(1)
Exemplu- pentru un s dat sa se determine nrele intregi a,b,c cu proprietatea ca a+b+c=s si a*b*c
maxim
Solutia 1--BRUT s3
for(a=0 ;a<=s ;a++)
for(b=0 ;b<=s ;b++)
for(c=0 ;c<=s ;c++)
if(a+b+c==s)
if(a*b*c>maxx){maxx=a*b*c;a1=a;b1=b;c1=c;}
Eficient--produsul este maxim daca si numai daca numerele sunt egale
s=12-a=b=c=4
s=13-a=b=4 c=5
s=14-a=4 b=c=5
Solutia O(1) pentru s dat
cin>>s;
a=b=c=s/3;
if(s%3==1) c++;
if(s%3==2) {b++;c++;}

https://invata.info/2016/09/19/testul-de-numar-prim-c/

S-ar putea să vă placă și