479
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Raspuns: 003 Fractii
|
: Februarie 07, 2005, 18:46:51
|
daca vrei sa folosesti functia totient si sa optimizezi timpul de executie te poti folosi de urmatoarele egalitati:
t(p^e) = (p - 1) * p^(e - 1), p numar prim (din definitie) si daca p numar prim, p NU divide a, t(p^e * a) = t(p^e) * t(a) = (p - 1) * p^(e - 1) * t(a)
deci, daca la un moment dat stii t(1), t(2) ... t(n) poti calcula t(n + 1) gasind un singur divizor prim al lui n + 1
|
|
|
480
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Re: Doar daca vrei mai mult
|
: Februarie 05, 2005, 01:59:33
|
... porcherie ... MS in general, Windows in special . Linux este viitorul cu sau fara Whidbey daca NU e open-source NU merita sa-l programezi. Dupa aia am programat in ASM, abia cand am scris un program intr-un Hex editor mi-am dat cu adevarat seama ce porcarie e MS-Win .Net sau ceva asemanator poate fi scris si pentru Linux si daca vrei portabilitate C -ul ti-o ofera . Idea e ca pui gresit intrebarea , (si yo o puneam la fel) NU conteaza limbajul atat cat e optimizat se executa la fel, conteaza plaforma. Sfatul meu Ia-ti un Linux cu surse si apuca-te de debugat (preferabil o distrib noua) dar daca nu poti sa faci rost merge orice si nu ti-ar strica sa inveti assembler , chiar daca nu programezi in el o sa priveshti lucrurile altfel !!!! P.S.:for those who still think Whidbey is great : Bin there ,done that ,Got wiser (mi-a venit in engl. LOL) totul depinde de ce urmaresti. dpdv. financiar, o investitie in platforme MS e un lucru inteligent. sa inveti assembly nu e (decat daca vrei sa faci driver`e sau sa programezi micro-controller`e) atat timp cat target-ul unui produs e format in majoritate de utilizatori MS, investesc in platforme MS. daca te intereseaza, exista si modele de afaceri OpenSource; e ceva mai dificil. partea buna e ca tehnologia avanseaza. in ziua de astazi e usor sa faci aplicatii portabile pe ambele platforme. .NET adreseaza si aceasta problema. Bottom line: 1. platforma ti-o alegi in functie de target 2. e usor sa portezi aplicatii dintr-o parte in alta folosind .NET
|
|
|
481
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Intrebare despre programare...
|
: Ianuarie 31, 2005, 12:29:18
|
1. there is no magic silver bullet! singura solutie e sa faci multe multe probleme.
2. fa rost de "Informatica. Culegere de probleme". Editura "Polirom", 2002. parcurgerea capitolului de programare dinamica de acolo (eg. citesti, rezolvi si implementezi toate problemele rezolvate/propuse) e un foarte bun inceput.
programarea dinamica e fun & challenging! spor la treaba!
|
|
|
482
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / 006 Factorial
|
: Ianuarie 28, 2005, 20:25:38
|
fie f: N -> N, f(n) = numarul de 0-uri de la sfarsitul lui n! f este o functie crescatoare (pe masura ca n-ul creste, numarul de 0-uri de la sfarsitul lui n! creste de asemenea) "smenul" problemei este sa iti dai seama cum se calculeaza f(n). hint: vezi la ce putere apare 5 in descompunerea in factori primi a lui "n!". cum f este o functie crescatoare, cautarea binara a lui n se aplica in urmatorul fel: 1. a = 0 si b = un numar suficient de mare 2. c = (a + b) / 2 3. daca f(c) < p => cautarea se restrange in partea dreapta a intervalului [a, b] (a = c + 1) altfel cautarea se restrange in partea stanga (b = c - 1) evident, daca f(c) = p inseamna ca numarul cautat este c se repeta 2, 3 parcurgeti articolul despre cautare binara http://info.devnet.ro/articole.php?page=art&art=29
|
|
|
486
|
Comunitate - feedback, proiecte si distractie / Arhiva / Urgent
|
: Ianuarie 22, 2005, 20:55:36
|
concursul NU se va amana! eventual se va prelungi timpul de lucru in caz ca apar probleme in timpul concursului.
oricum, eu iti sugerez sa trimiti *din timp* solutiile, una cate una. o conexiune la internet se poate intrerupe oricand, nu?
|
|
|
489
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / idei si idei
|
: Ianuarie 07, 2005, 06:06:20
|
Silviu,
Dar daca fac o smekerie de genul
type vector = array[1..1000]of byte; var a:array[1..1000]of ^vector;
Crezi ca merge? P.S. La USACO zicea ca limta de memorie este 17 MB din care 1 MB pentru segmentul de stiva. Eu am declarat un array[1..4000,1..4000] of byte si am luat aproape tot punctajul. (mi-a iesit din timp, dar a mers)
Unde gasesc niste informatii despre kestiile astea? Thanx Nu ma cheama Silviu, dar am sa-ti raspund eu, ca mai oboseste saracul baiat. La USACO ti-a mers treaba pentru ca tu ai alocat static o matrice de 4000 * 4000 bytes adica mai putin de 16 MBytes (1 MB = 2 ^ 10 KB = 1024 KB). Te-ai incadrat in limita de memorie. Cat despre "smecherie" ... Acei 1000 de vectori pe care urmeaza sa-i aloci se vor duce toti in heap (adica nu in stack - stiva). Intrucat ai la dispozitie 2 MB din care 1 pentru stiva => 1 MB pentru heap. Cei 1000 de vectori incap in heap si ii vei putea folosi. Insa asta nu rezolva problema de la care am plecat (sa aloci o matrice de 1,9 MB). Daca tii neaparat, poti face niste trucuri ieftine sa imparti matricea ta cea mare intre heap si stack dar mai bine zi-ne si noua problema sa gasim impreuna o solutie care merge lejer in limita de memorie.
|
|
|
492
|
Comunitate - feedback, proiecte si distractie / Arhiva / sincope evaluator ...
|
: Decembrie 10, 2004, 11:07:50
|
Deci ar trebui să puneţi "-lm" după numele fişierului sursă.
Am facut niste teste si ai perfecta dreptate. "Descoperirea" ta este cu atat mai interesanta cu cat la ONI 2003, 2004 si .campion s-a procedat la fel de gresit cu parametrul "-lm". http://www.liis.ro/~campion/rules.phpcache google cu ONI 2003http://olimpiada.info/oni2004/info/info.htmDin cate stiu, la ONI`04 nu poti da batch-uri pentru compilare. Si asta cred ca reiese si din regulament. Trebuie sa te descurci doar cu #pragma-uri, insa acestea au o functionalitate redusa (ex. BC -mh). Am schimbat parametrii de compilare: Gnu C gcc -O2 -Wall -static -o %name% %name%%ext% -lm Gnu C++ g++ -O2 -Wall -static -o %name% %name%%ext% -lm FreePascal fpc -O2 -Xs %name%%ext%
Sper sa fie bine acum. Morala: daca vreti sa nu aveti surprize, contactati organizatorii de la .campion / ONI / samd. si explicati-le problema. Altfel, folositi C++.
|
|
|
493
|
Comunitate - feedback, proiecte si distractie / Arhiva / sincope evaluator ...
|
: Decembrie 10, 2004, 00:53:02
|
Deci daca folosesc C (ma rog, the "ANSI/ISO C standard") nu mai am acces la nici o functie matematica din math.h (?!?).
nu pot sa o fac pe desteptu` zicand ca ma pricep la standarde in C dar iti pot spune sa folosesti CPP daca vrei sqrt (despre celelalte functii din math.h nu stiu). am patit`o la ONI si, dupa cum vezi, se intampla si aici. indiferent de explicatie, nu merita riscul in concurs! sursele C se compileaza asa: gcc -lm -Wall --static -o <sursa> <sursa>.<extensie>
btw... in anumite cazuri poti evita folosirea functiei sqrt(). de exemplu, atunci cand cauti divizori primi pentru un numar for (d = 2; N >= d * d; ... sau atunci cand compari doua distante.
|
|
|
494
|
Comunitate - feedback, proiecte si distractie / Arhiva / sincope evaluator ...
|
: Decembrie 08, 2004, 21:29:14
|
Pe sistemul meu, copilata cu gcc 3.3.1 (Dev-C++), nu are nici o problema.
sqrt() nu exista in GCC ANSI (chiar daca in documentatia de DJGPP zice altceva). foloseste C++ si iti va compila. apropos de asta... la ONI vei intampina aceleasi probleme. daca ai nevoie de sqrt(), baga sursa in C++. am aflat asta pe pielea mea.
|
|
|
495
|
Comunitate - feedback, proiecte si distractie / Arhiva / sincope evaluator ...
|
: Decembrie 07, 2004, 17:15:00
|
am mai zis la un moment dat pe forum:
evaluatorul si-a schimbat locatia (fizica) si implicit adresa IP de la care functiona. lucrul asta are mai multe implicatii in conditiile oferite de webhost. una din ele e ca mai dureaza (sper ca foarte) putin pana intra "online".
|
|
|
498
|
Comunitate - feedback, proiecte si distractie / Off topic / Re: fibbonaci
|
: Noiembrie 23, 2004, 00:47:38
|
Cine imi da si mie o idee cum sa descompun un numar n<=10^100 in suma de termeni fibbonaci(1,1,2,3,5,8....); timp de executie 0.1 sec
Mi se pare imposibil in timpul asta ! Pentru inceput incearca sa faci un topic la sectiunea "Informatica". Pe aici nu prea se uita lumea ca se cheama "Off topic"
|
|
|
499
|
infoarena - concursuri, probleme, evaluator, articole / Articole / Articol nou
|
: Noiembrie 23, 2004, 00:44:51
|
heh ... good ol` days ... sprite-uri, PCX-uri, FLI-uri, HSF-uri, MOD-uri, WAV-uri pe 8biti, newgraph, jocuri si alte nebunii :cry: decat sa-i inveti sa faca bitblt-uri in asm, mai bine i-ai invata ObjGfx (daca tii mult la BP) insa nu pe info.devNet ca nu tine de informatica. astora de la info nu le pasa de jucariile alea, iti spun eu :lol: mai da o incercare totusi
|
|
|
500
|
infoarena - concursuri, probleme, evaluator, articole / Concursuri / Re: Zaharel
|
: Noiembrie 21, 2004, 17:00:36
|
As vrea si eu un test cat mai mare, care nu este folosit de evaluator(ca sa nu ziceti ca iau puncte pe constante) si output-ul lui corect. Cred ca algoritmul meu functioneaza bine. L-am testat pe testul din enunt si functioneaza doar ca afiseaza punctele in alta ordine, ceea ce nu cred ca e gresit. Decat sa astepti pana cand cineva va avea timp sa *iti genereze* un test mare mai bine iti faci tu un generator & evaluator de teste. Tu cum iti verifici o problema mai dificila atunci cand esti in timpul concursului? Nu iti faci generator & evaluator de teste?
|
|
|
|