Jump to content

Kid Koder

Members
  • Content Count

    78
  • Joined

  • Last visited

Everything posted by Kid Koder

  1. Misto platforma ! Congratz :D

  2. Nu stiu de ce, dar nu pot da EDIT la primul post. Am rezolvat: Click Sursa: Click Am modificat doar functia Fall() in felul urmator: void Fall(int App_nr) { for(int i = 1; i <= N; ++i) { if(App_nr != i && Fallen[i] == 0 && Apple[App_nr].z >= Apple[i].z) { if(Distance(Apple[i], Apple[App_nr]) <= (Apple[App_nr].r + Apple[i].r) * (Apple[App_nr].r + Apple[i].r)) { Fallen[i] = 1; Fall(i); } } } } Am facut abstractie de "z". Pur si simplu am verificat daca se ating atunci cand marul App_nr va ajunge la i (daca este posibil).
  3. Am incercat astazi sa rezolv o problema de pe .campion. Enuntul: Click Solutia mea: Click O idee a ce am facut eu acolo: Mai intai apelam functia Fall(1) (deoarece primul mar cade automat), iar apoi "simulam" caderea marului respectiv. Daca cumva pe drum lovea alt mar, apelam aceeasi functia, doar ca pentru marul care a fost atins. In Down retineam nivelul la care se afla ultimul mar (care l-am considerat ca fiind solul). In Fallen marcam cu 1 daca marul i a fost atins, respectiv 0 in caz contrar. Faza e ca solutia trebuie optimizata, astfel incat sa intre in 0.1 secunde Mentionez ca pe primul test gresit, rezultatul este corect (am verificat). Primul test gresit: Click Rezultatul corect (care imi da si mie) : 164
  4. E mai indicat. De exemplu, daca folosesti o variabila intr-o singura functie, n-are rost sa o declari global, pur si simplu local, in functia respectiva. Un alt plus e ca poti sa folosesti local aceeasi variabila in mai multe functii. Exemplu: void blabla() { int i; ... } void altblabla() { int i; ... }
  5. Hm, o complexitate de 9N Lejer
  6. Sau iei un vector cu N elemente (N - numarul de casute goale) si faci toate permutarile posibile cu valori din multimea {1, 2, ..., 9} Ca tot vorbeam de permutari.
  7. Ideea cu sudoku imi place :> Dar fara backtracking, se mai poate face ?
  8. Numarul lor sau/si toate posibilitatie ?
  9. Salutare !! Impreuna cu un coleg, ne-am gandit sa scriem un program care, printr-o simpla apelare a lui, sa-ti rezolve o cerinta de baza, gen cmmdc, cautare binara etc. Insa, n-avem prea multe idei... Lista arata cam asa: 1) CMMDC 2) CMMMC 3) Adunare a doua numere mari 4) Scaderea a doua numere mari 5) Cautarea binara 6) Palindrom 7) Inmultirea a doua numere mari 8) Inmultirea unui numar mare cu un numar mic 9) Ridicarea la putere in timp logaritmic 10) Sortarea crescatoare a unui vector 11) Combinari (cu N si K dat) 12) Permutari 13) Aranjamente 14) pana de idei... In general, subproblemele de mai sus ar trebui sa fie lucruri usoare, nu grafuri/arbori/heap-uri etc... Lucruri care se invata in clasa a V-a,a VI-a sau a IX-a. Mai are cineva idei ?
  10. 6-7 ore e deschis, insa la el stau doar 2-3 ore maxim. Prefer sa ies la patratica pe afara
  11. Film vazut: Fast & Furious 7 Nota acordata: 9, putin cam SF in unele momente, insa finalul il face si pe Courage sa planga
  12. Nu e tot una cu Borland Pascal ?
  13. Am luat o variabila aux, de la auxiliar, in care retineam fiecare numar de la 1 la N (si in x retineam asta), pentru ca dupa ce faceam suma cifrelor in sumcif, aux devenea 0. si eu trebuia sa fac verificarea daca restul impartirii numarului la sumcif este 0 sau nu. Astfel, aux era mai mult o variabila care ma ajuta sa calculez sumcif, fara sa pierd numarul (deoarece acesta se afla in X). PS: Acum imi dau seama ca nu era nevoie de x Puteam sa afisez si sa fac verificarea cu i
  14. Am facut Pascal acum cativa ani Nu garantez ca urmatorul cod se compileaza program LoL; var N, sumcif, i, aux, x: longint; begin writeln("Introduceti N: "); readln(N); for i:= 1 to N do begin sumcif := 0; aux := i; x := i; while(aux <> 0) do begin sumcif := sumcif + aux mod 10; aux := aux div 10; end if (x mod sumcif) then writeln(x); end end.
  15. Enunt Se dau doua numere A si B. Se cere sa se determine numarul X = AB% 1999999973, unde x % y reprezinta restul impartirii lui x la y. Restrictii: A, B - pozitive A, B < 1.000.001 Exemplu: date.in 2 5 date.out 32 Explicatii: 25 % 1999999973. = 32 % 1999999973 = 32. Indicatii de rezolvare: Problema se poate rezolva in mai multe moduri: 1) Prin inmultiri directe, solutie cu complexitate O(B) --> solutie ineficienta din punct de vedere al timpului de executie. 2) Solutia de ridicare in timp logaritmic, solutie cu complexitate O(log2 B) --> solutie de punctaj maxim. Cod: long long rise(long long A, long long B) { if(B == 0) return 1; // un numar ridicat la puterea 0 da rezultatul 1. long long x = rise(A, B / 2) % MOD; // pentru a nu calcula de doua ori rise(A, B / 2), il calculam o singura data in x if(B % 2 == 0) return (x * x) % MOD; // daca puterea B este una para, atunci inmultim x cu el insusi deoarece A^(B/2) * A^(B/2) = A^B; else return (((x * x) % MOD) * A) % MOD; // A^(B/2) * A^(B/2) != A^B deoarece ne ramane un A pe dinafara, B-ul fiind numar impar. /* Solutia are complexitate O(log2 B) deoarece numerele: A^0, A^1, A^2, A^4, A^8, etc... sunt calculate O SINGURA DATA. Ca sa intelegeti mai usor, imaginati-va B ca fiind scris in baza 2, iar fiecare bit x reprezinta A^X din descompunerea sa. */ } Problema de exersare: lgput -> infoarena Daca aveti nelamuriri legat de partea de teorie/practica, lasati un reply in acest topic. Nota: Codul NU a fost compilat. Daca gasiti vreo eroare de compilare/sintaxa, lasati reply/PM. @Kid Koder 2015
  16. Combinari Combinarile: modalitati de a alege K numere distincte dintr-o multime cu N numere. Exemplu: N = 4, K = 3, elementele: 1, 2, 3 si 4: Combinarile sunt: {1, 2, 3} {1, 2, 4} {1, 3, 4} {2, 3, 4} ATENTIE !! Ordinea elementelor nu conteaza. In concluzie, submultimea {1, 2, 3} este tot una cu submultimea {1, 3, 2}. Cum aflam numarul de combinari ? Simplu. Numarul de combinari este data de formula : Comb(N, K) = Fact(N) / (Fact(K) * Fact(N - K)); // unde Fact(x) = x! Probleme pentru exersare: 1) Combinari --> Arhiva educationala Infoarena 2) Lista probleme Combinari --> pbinfo Daca aveti intrebari in legatura cu partea de teorie/practica, puteti lasa un reply in acest topic. @Kid Koder 2015
  17. Probabil postez degeaba, insa daca vrei sa transformi un video de pe youtube in mp3 (gen o muzica), poti accesa link-ul : http://www.vidtomp3.com/ Bagi link-ul filmuletului de pe youtube si gata
  18. Defapt se calculeaza de fiecare data sqrt(n), dar pentru ca sqrt-ul mai da rateuri uneori, era mai lejer asa: for(int i = 2; i * i <= n; ++i) { ... }
  19. Mai este o categorie de "if", ca sa spun asa Uite urmatorul cod: int a, b; cin >> a >> b; cout << (a > b ? a : b) << 'n'; Intre paranteze, avem conditia (a > b) si sunt doua cazuri: 1) Daca conditia este adevarata, atunci va fi executata instructiunea de dupa '?' , mai exact cout << a << 'n'; 2) Daca conditia nu este adevarata, atunci va fi executata instructiunea de dupa ':', mai exact cout << b << 'n';
×
×
  • Create New...