informatician Posted February 18, 2011 Report Posted February 18, 2011 Caut un om care sa stie c++ sau pascal sa ma ajute la niste probleme de olimpiada.Platesc pt ajutor.PS.Multumesc Quote
Paul4games Posted February 18, 2011 Report Posted February 18, 2011 Frate nu cred ca o sa te pot ajuta dar e rog posteaza te rog aici probleme(care trebuiesc rezolvate in pascal) sa vad si eu despre ce este vorba! Quote
informatician Posted February 18, 2011 Author Report Posted February 18, 2011 pentru ce clase?Este vorba de clasa aXa. Quote
Patrunjel Posted February 18, 2011 Report Posted February 18, 2011 E ok daca ti le face cineva in pseudocod (gen) si ti le treci tu si in C++, si in Pascal, si in orice altceva vrei tu.Tinand cont ca OLI a trecut, pun pariu ca vrei sa te pregatesti de OJI, si a cacat algoritmica in tine cu 2-3 saptamani inainte de proba.PS: De curiozitate, la OLI ai avut o problema de cacat cu Scorpionii Rosii? (sunt tot a 10a) Daca stii backtracking,greedy,divide et impera, grafuri (grav) , zic ca te descurci la OJI. Dar, bineinteles, e imposibil din puct de vedere fizic sa inveti cacaturile astea, si sa te si descurci bine cu ele, in 3 saptamani.Totusi, incercarea moarte n-are.Sa-ti fie invatatura de minte, banii nu fac nici pielea pulii fara cunostinte PS: De ce nu pui problemele aici? Quote
Patrunjel Posted February 18, 2011 Report Posted February 18, 2011 (edited) Cacat.Exact asa zic si virginii care n-au vazut pizda decat in 2D (eventual anaglyph:)) ) .Chestiile astea nu se aproximeaza, stii sigur daca ai fost la 3 sau la 4 ONI-uri.Si da, am vazut de starea de "binedispunere" in care banuiesc ca vrei sa arati societatii ca tu bagi etno.Chestia asta e ca manelele din masina.Toata lumea stie ca esti prost, doar tu nu-ti dai seama.PS: Pentru informatician. Banuiesc ca ti-e sa nu afle mai stiu eu ce profa ca te inspiri de pe net, si de-aia eviti sa pui problemele intr-un topic.Pune-le pe ideone si da-ne linku.Asa n-o sa-ti indexeze cerinta. De ce sa dai bani degeaba?Fa un topic in care sa pui problemele, pana la urma merg facute si de plictiseala, ce pula mea? Edited February 18, 2011 by Patrunjel Quote
drakeRizz Posted February 18, 2011 Report Posted February 18, 2011 vreau si eu problemele ..s-ar putea sa merg si eu , tot aX-a. Posteaza aici te rog Quote
informatician Posted February 19, 2011 Author Report Posted February 19, 2011 (edited) Fie un ?ir a1, a2, ..., an de numere naturale. O secven?? a ?irului este o succesiune de elemente al?turate din ?ir, deci de forma ai, ai+1, ai+2, ..., aj-1, aj. Lungimea acestei secven?e este dat? de num?rul de elemente ale secven?ei, adic? j – i + 1.Cerin?aS? se determine o secven?? de lungime maxim? din ?ir cu proprietatea c? cel mai mare divizor comun al numerelor din secven?? este strict mai mare decât 1.Date de intrareFi?ierul cmmdcsecv.in con?ine pe prima linie un num?r natural n reprezentând lungimea ?irului, iar pe linia a doua se afl? n numere naturale separate prin câte un spa?iu reprezentând elementele ?irului.Date de iesireFi?ierul cmmdcsecv.out va con?ine un singur num?r natural reprezentând lungimea maxim? a unei secven?e care are cel mai mare divizor comun strict mai mare decât 1.Daca are careva vreo idee..PS.BONUS:Consider?m o matrice p?tratic? având N linii ?i N coloane care memoreaz? numai valori 0 ?i 1. Matricea sufer? transform?ri în mai mul?i pa?i. La fiecare pas, toate componentele din matrice marcate cu 0 se vor transforma în 1 dac? au cel pu?in 3 vecini (pe linie, coloan? ?i diagonale) marcate cu 1. Procesul de transformare se repet? la fiecare pas, pân? când matricea are peste tot valoarea 1 sau pân? când nu mai poate surveni nicio transformare.Cerin?aS? se determine num?rul de pa?i necesari ca matricea s? aib? peste tot valoarea 1, sau pân? când nu mai are loc nicio transformare.Date de intrareFi?ierul fillmat.in con?ine pe prima linie un num?r natural N reprezentând dimensiunea matricei. Pe urm?toarele N linii se g?sesc exact N caractere 0 ?i 1 reprezentând câte o linie din matrice. Elementele de pe linii nu sunt separate prin spa?ii.Date de iesireFi?ierul fillmat.out va con?ine un singur num?r natural reprezentând num?rul de pa?i necesari pentru ca matricea s? con?in? peste tot valoarea 1, sau pân? când nu mai are loc nicio transformare.Daca reusiti sa le faceti pe careva, sau daca aveti ideea de rezolvare, astept sugestiile voastre! Edited February 19, 2011 by informatician Quote
kNigHt Posted February 19, 2011 Report Posted February 19, 2011 Problema 1:#include <fstream>using namespace std;int cmmdc(int a, int { if(a%b == 0) return b; else return cmmdc(b, a%;}int main() { int n, maxSecv = 0, currSecv = 0, tempCmmdc, x; ifstream fin("cmmdcsecv.in"); fin >> n; for(int i = 0; i < n; i++) { fin >> x; if(x <= 1) currSecv = 0; else { currSecv++; // Crestem secventa curenta, presupunand ca e valida if(currSecv == 1) tempCmmdc = x; // Daca e primul element din secventa, cmmdc-ul secventei este elementul in sine tempCmmdc = cmmdc(tempCmmdc, x); // Calculeaza cmmdc-ul secventei, cmmdc(cmmdc_precedent, elementul_curent); if(tempCmmdc <= 1) currSecv = 0; // Daca cmmdc-ul a devenit <= 1, trecem la o noua secventa. if(currSecv > maxSecv) maxSecv = currSecv; // In caz ca dimensiunea secventei curente a depasit secventa maxima anterioara, secventa maxima devine cea curenta. } } fin.close(); ofstream fout("cmmdcsecv.out"); fout << maxSecv; fout.close(); return 1;}Asta ar trebui sa fie algoritmul de eficienta maxima.Nu sunt foarte bun la explicatii, daca nu intelegi ceva spune.Uita-te peste principiul de programare dinamica.Revin spre seara cu a doua problema Quote
cmiN Posted February 19, 2011 Report Posted February 19, 2011 cmmdcsecv: C++ | #include <stdio.h> const unsigned int nmax = 10 - CmiNfilmat: C++ | #include <stdio.h> const unsigned int nmax = 10 - CmiN[cmmdcsecv]1) Se citesc datele in vector.2) Pentru fiecare lungime (de la N la 1) pentru fiecare offset (capat de inceput i) se verifica cu ajutorul altei functii daca secventa ce incepe de pe pozitia i de lungime len are cmmdcul mai mare decat 1. Cmmdcul se afla destul de optim prin impartiri repetate.3) Se scrie lungimea maxima (prima oara cand gaseste un pozitiv).Complexitate: O(N^2)[filmat]1) Se citesc datele in matrice.2) Cat timp se poate face o transformare (adica exista 0 cu cel putin 3 vecini) se executa whileul care ia fiecare element 0 din matrice ii verifica vecinii si cand a depistat 3 vecini de 1 poc elementul curent se transforma in 1, este incrementat numarul de transformari, si se marcheaza intr-o variabila ca s-a depistat cel putin o transformare (pentru while).Note: vecinii sunt gasiti in felul urmator ... la elementul x[j], x[i - 1][j] este cel din nord, x[i - 1][j + 1] este cel din NE, x[j + 1] E, etc si astfel am notat in 2 vectori directiile (dlin, dcol) unde pentru fiecare directie de la 0 la 7 (8 directii) se afla o pereche de numere corespunzatoare directiei.Complexitate: O(N^3) [in cazurile alea mai naspa]Sunt sigur ca problmele se pot rezolva si mai optim din punct de vedere al complexitatii, iar pe baza ideii pe care am mers sunt optimizate destul.Edit: Da cum ziceam a lui knight e in timp liniar nu ma gandisem la asta. Quote
kNigHt Posted February 19, 2011 Report Posted February 19, 2011 cMin mi-ai luat-o inainte cu a doua problema O mica observatie... Problema spune ca la fiecare pas sa se faca transformarile respective. Tu faci o modificare pe o pozitie. Daca treci la o pozitie alaturata (pe cele 8 directii) de 0 ar trebui sa iei in calcul valoarea de la inceputul pasului care era pe pozitia transformata anterior, nu cea deja transformata. Cred c-ar trebui un vector trans[nmax][2] (trans[0] = x, trans[1] = y).Corecteaza-ma daca gresesc... Quote
cmiN Posted February 19, 2011 Report Posted February 19, 2011 Dupa cum am scris si in explicatie eu nu-mi dadeam seama ca de fapt numaram transformarile nu pasii.Asta afiseaza numarul de pasi (ceea ce cere problema, eram chior): C++ | #include <stdio.h> const unsigned int nmax = 10 - CmiN Quote
darakna Posted February 23, 2011 Report Posted February 23, 2011 (edited) Rezolvarea celei de-a doua probleme ar trebuie sa arate cam asa:#include <iostream.h>#include <fstream.h>void main(){int n,m[][];string linie;ofstream filmato("filmat.in");filmati>>n;for(int ln=0,ln<n,ln++) { string line ; getline( filmati, line ); for(cn=0,cn<n,cn++) {if(line[cn]=='1')m[ln][cn]=1; else m[ln][cn]=0; } }filmato.close();int vecini=0,trans=0,m1[][],st=0;for(int i=0;i<n;i++){ for(int j=1;j<n;j++) { if(m[j]==0) { vecini=0; if(m[i-1][j-1])vecini++; if(m[j-1])vecini++; if(m[i+1][j-1])vecini++; if(m[i-1][j])vecini++; if(m[i+1][j])vecini++; if(m[i-1][j+1])vecini++; if(m[j+1])vecini++; if(m[i+1][j+1])vecini++; } else m1[j]=1; if(vecini>=3) { m1[j]=1;trans=1; } else m1[j]=0; } if((i=n-1)&&(j=n-1)) { for(int i1=0;i1<n;i1++) { for(int j1=0;j1<n;j1++) { m[i1][j1]=m1[i1][j1]; } } if(trans=1){i=0;j=0;} trans=0; st++; }}ifstream filmati("filmat.out");filmati<<st;filmati.close();}Nu am mai programat demult asa ca C-ul meu e cam ruginit. Astept corecturile/intrebarile voastre.http://pastebin.com/HCH8YCkV Edited February 23, 2011 by darakna Quote
Zamolxis666 Posted February 24, 2011 Report Posted February 24, 2011 Rezolvarea celei de-a doua probleme ar trebuie sa arate cam asa:Nu am mai programat demult asa ca C-ul meu e cam ruginit. Astept corecturile/intrebarile voastre.C++ | #include <iostream.h> #include <fstream.h> v - FilmatO sa iti dea eroare. Daca ai elementul curent matrice[0][0] cad te uiti la vecini o sa vezi matrice[-1][-1], matrice[-1][0], etc. adica "te uiti" in afara tabloului si o sa ai memory corrupted sau segmentation fault. Quote
darakna Posted February 28, 2011 Report Posted February 28, 2011 Vin cu o corectie:{vecini=0;if((i>0)&&(j>0)){if(m[i-1][j-1])vecini++;}if(j>0){if(m[j-1])vecini++;}if(i<n)&&(j>0){if(m[i+1][j-1])vecini++;}if(i>0){(if(m[i-1][j])vecini++;}if(i<n){if(m[i+1][j])vecini++;}if((i>0)&&(j<n)){if(m[i-1][j+1])vecini++;}if(j<n){if(m[j+1])vecini++;}if((i<n)&&(j<n)){if(m[i+1][j+1])vecini++;}}else m1[j]=1; Quote
Patrunjel Posted February 3, 2012 Report Posted February 3, 2012 (edited) Am gresit topicul, nustiu ce sloboz s-a intamplat.De ce sloboz mi-a aparut topicu asta la alea cu activitate recenta? ultimul post e de-acu un an, aproape Edited February 3, 2012 by Patrunjel Quote
informatician Posted February 3, 2012 Author Report Posted February 3, 2012 Care ma poate ajuta sa modific o problema in c++, pm me! Quote
backdoor Posted February 13, 2012 Report Posted February 13, 2012 Ma tu ai ramas corijent . Ha ha ha... Quote