Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Magnet in loc de clește pent...

Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over
 Filtru apa potabila cu osmoza inv...

Kanal D va difuza serialul “...

Upgrade xiaomi mi11

securitate - acum se dau drept - ...
 Farmacia Dr Max - Pareri / Sugest...

De unde cumparati suspensii / gar...

[UNDE] Reconditionare obiecte lemn

Infiltratii casa noua
 sugestie usa interior

ANAF si plata la selfpay

Imprimanta ciss rezista perioade ...

Garmin fēnix 7 / PRO / Saphi...
 

[TEMA] Celui mai lung subșir comun

- - - - -
  • Please log in to reply
22 replies to this topic

#1
dana10101010

dana10101010

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 28.05.2014
Fișierul titu.in conține numere naturale din intervalul [1,10^2]: pe prima linie două numere,
m și n, pe a doua linie un șir de m numere, iar pe a treia linie un șir de n numere. Numerele aflate pe
aceeași linie a fișierului sunt separate prin câte un spațiu.
Se cere să se afișeze pe ecran numărul de termeni ai celui mai lung subșir comun celor două șiruri
aflate în fișier. Utilizați un algoritm eficient din punctul de vedere al timpului de executare.
Exemplu: dacă fișierul are conținutul alăturat, se afișează pe ecran
valoarea 3.
5 8
4 7 9 8 3
1 4 2 9 7 6 8 2

#2
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,260
  • Înscris: 06.01.2007
Ok.
Pana citesc si eu problema, pune si tu ce-ai facut pana acum sa vedem ce-i de facut in continuare.

#3
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,440
  • Înscris: 10.08.2005
pai ce algoritmi stii?
ii implementezi pe toti, si testezi care sunt eficienti

#4
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,260
  • Înscris: 06.01.2007
E faina problema. Hai s-o facem.

#5
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,440
  • Înscris: 10.08.2005
bine, dar ne trebuie alt exemplu

#6
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,260
  • Înscris: 06.01.2007
Pai sa vedem ce zice Dana.

#7
dana10101010

dana10101010

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 28.05.2014
using namespace std;
ifstream  f('titlu.in');
int n, m, i, j, L[101] [101], a[101], b[101];
int main ()
{
f>>m>>n<
for(i=1; i<=m; i++)
  f>>a[i];
for(i=1; i<=n; i++)
  f>>b[i];
for(i=1; i<=m; i++)
  for(j=1; j<=n; j++)
  if(a[i]==b[j])
  L[i] [j]=1+L[i-1] [j-1];
  else
  L[i] [j]=max(L[i-1] [j], L[i] [j-1]);
cout<<”numărul de termeni ai celui mai lung subșir comun celor două șiruri: ”;
cout<<L[m] [n]<<endl;
f.close();
return 0;
}

#8
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,260
  • Înscris: 06.01.2007
Pai ideea e foarte buna.
Cum ai gandit?
Ce nu-ti merge?
De ce incepi indexarea de la 1?

Edited by maccip, 14 August 2018 - 16:53.


#9
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,260
  • Înscris: 06.01.2007
Aight!

Solutia cu care ai venit mi se pare foarte buna.
Nu stiu ce nu-ti merge, dar, daca tu ai venit cu solutia, atunci n-ar trebui sa ai probleme sa corectezi erorile.
Din pct meu de vedere problema e rezolvata. Bravo celui care a facut-o.

#10
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,235
  • Înscris: 24.02.2007
[ https://www.youtube-nocookie.com/embed/BysNXJHzCEs?feature=oembed - Pentru incarcare in pagina (embed) Click aici ]

#11
salcudean99

salcudean99

    Junior Member

  • Grup: Members
  • Posts: 89
  • Înscris: 09.03.2016

 dana10101010, on 14 august 2018 - 15:55, said:

Fișierul titu.in conține numere naturale din intervalul [1,10^2]: pe prima linie două numere,
m și n, pe a doua linie un șir de m numere, iar pe a treia linie un șir de n numere. Numerele aflate pe
aceeași linie a fișierului sunt separate prin câte un spațiu.
Se cere să se afișeze pe ecran numărul de termeni ai celui mai lung subșir comun celor două șiruri
aflate în fișier. Utilizați un algoritm eficient din punctul de vedere al timpului de executare.
Exemplu: dacă fișierul are conținutul alăturat, se afișează pe ecran
valoarea 3.
5 8
4 7 9 8 3
1 4 2 9 7 6 8 2
pe exemplul ala nu vad niciun subsir comun de 3 elemente...imi scapa mie ceva?

#12
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018

 dana10101010, on 14 august 2018 - 15:55, said:

Fișierul titu.in conține numere naturale din intervalul [1,10^2]: pe prima linie două numere,
m și n, pe a doua linie un șir de m numere, iar pe a treia linie un șir de n numere. Numerele aflate pe
aceeași linie a fișierului sunt separate prin câte un spațiu.
Se cere să se afișeze pe ecran numărul de termeni ai celui mai lung subșir comun celor două șiruri
aflate în fișier. Utilizați un algoritm eficient din punctul de vedere al timpului de executare.
Exemplu: dacă fișierul are conținutul alăturat, se afișează pe ecran
valoarea 3.
5 8
4 7 9 8 3
1 4 2 9 7 6 8 2
reformulam problema:
pe prima linie avem:
<numarul de elemente al sirului m> , <numarul de elemente al sirului n>
pe a doua linie avem : elementele sirului m
pe a treia linie avem : elementele sirului n

Intrebare: de ce imi trebuie prima linie din moment ce stiu cele doua siruri ?

#13
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018
Sigur nu sunt 4 termeni la rezultatul final (click pe poza) ?
Attached File  distributie.png   9.05K   15 downloads

Edited by WinstonMontana, 15 August 2018 - 15:34.


#14
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018

 dani.user, on 14 august 2018 - 17:31, said:

[ https://www.youtube-nocookie.com/embed/BysNXJHzCEs?feature=oembed - Pentru incarcare in pagina (embed) Click aici ]
Intersant, procesare dupa diagonala secundara( sau principala depinde cum asezi termeni de cautat) a acelei matrici.

#15
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,235
  • Înscris: 24.02.2007
Poate fi orice diagonala. S-a nimerit sa fie cea principala in acel exemplu ca incepea LCS de la acelasi index in ambele siruri.

#16
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,440
  • Înscris: 10.08.2005

 WinstonMontana, on 15 august 2018 - 14:07, said:

reformulam problema:
pe prima linie avem:
<numarul de elemente al sirului m> , <numarul de elemente al sirului n>
pe a doua linie avem : elementele sirului m
pe a treia linie avem : elementele sirului n

Intrebare: de ce imi trebuie prima linie din moment ce stiu cele doua siruri ?
pentru ca nu stii cele doua siruri,
primesti o informatie cu privire la cele doua siruri, aloci memorie, operezi date

#17
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018

 MarianG, on 15 august 2018 - 20:24, said:

pentru ca nu stii cele doua siruri,
primesti o informatie cu privire la cele doua siruri, aloci memorie, operezi date
puteau sa folosesca vectorii din C++ .

#18
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,440
  • Înscris: 10.08.2005
si daca ai mai multe numere pe una din linii, nu cate specifica fisierul la inceput ?

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate