infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Adrian Diaconu din Mai 22, 2009, 14:11:44



Titlul: 869 Reinvent
Scris de: Adrian Diaconu din Mai 22, 2009, 14:11:44
Aici puteţi discuta despre problema Reinvent (http://infoarena.ro/problema/reinvent).


Titlul: Răspuns: 869 Reinvent
Scris de: Suciu Daniel din Martie 10, 2010, 15:41:07
Are cineva un algoritm eficient pentru aceasta problema. Eu am rezolvat-o,dar cu un algoritm greoi care scoate doar 30 de puncte.algoritmul meu ia practica fiecare nod din cartier, face un BF si verifica daca nod ul accesat recent este sau nu din cartier.daca este, atunci ii determina distanta si se opreste.apoi ia celalt nod din cartier s.a.m.d.Are cineva o rezolvare mai isteata?nu ca ar fi greu sa o depaseasca pe a mea :rotfl: :rotfl:


Titlul: Răspuns: 869 Reinvent
Scris de: Cosmin-Mihai Tutunaru din Martie 10, 2010, 15:51:32
Păi faci tot un BellmanFord, doar că inițial pui în coadă toate nodurile din cartier.
Apoi, pentru fiecare nod, vei calcula distanța minimă față de cele mai apropiate două noduri din cartier.
Ca să afli soluția minimă, treci pe la fiecare nod, și vezi suma distanțelor către cele mai apropiate două noduri din cartier (cele calculate cu BF-ul).


Titlul: Răspuns: 869 Reinvent
Scris de: Chibici Tiberiu din Aprilie 05, 2011, 14:58:44
O idee mai isteata :D

Pui in coada toate casele din cartier, si te opresti cand se intersecteaza drumurile... distanta va fi drumul pana la nodul de la intersectie dintr-o directie + distanta din cealalta directie.

Am luat 100 pe solutia asta.


Titlul: Răspuns: 869 Reinvent
Scris de: Boaca Cosmin din Aprilie 10, 2012, 20:08:53
Ar trebui marita limita de timp la aceasta problema . Am trimis o sursa in complexitate O(N) si ia 60 de puncte .


Titlul: Răspuns: 869 Reinvent
Scris de: Vasilut Lucian din Mai 16, 2012, 20:47:15
ar trebui un pic marita limita de timp :readthis: aceasta sursa am trimis-o si pe campion si am luat 100:D...lucru foarte interesant ,in urma cu 1 luna am trimis sursa pe infoarena si am luat 90 si acum cu aceeasi sursa iau 60 pct :-k.aveti idee ce s-a intamplat? :D


Titlul: Răspuns: 869 Reinvent
Scris de: Tudor Tiplea din Mai 31, 2012, 20:04:54
Incearca sa parsezi citirea. Eu doar asa am reusit sa iau 100, si peste cate surse de 100 p m-am uitat, toti au parsat citirea. Bafta! :)


Titlul: Răspuns: 869 Reinvent
Scris de: Sorin Rita din Mai 31, 2012, 21:41:28
Eu n-am parsat citirea dar ca sa sar de la 90 la 100 a fost nevoie sa fac coada "de mana".


Titlul: Răspuns: 869 Reinvent
Scris de: Vasilut Lucian din Iulie 12, 2012, 08:02:37
Eu n-am parsat citirea dar ca sa sar de la 90 la 100 a fost nevoie sa fac coada "de mana".

am facut coada de mana ....tot 60 pct :'(

Incearca sa parsezi citirea. Eu doar asa am reusit sa iau 100, si peste cate surse de 100 p m-am uitat, toti au parsat citirea. Bafta! :)

care este faza cu parsatul citirii?imi poate da cineva un exemplu
Multumesc!!! :)


Titlul: Răspuns: 869 Reinvent
Scris de: Pirtoaca George Sebastian din Iulie 12, 2012, 08:14:27
Pai in loc sa citesti numar cu numar citesti blocuri de caractere folosind functia fread.
Mai multe detalii aici : http://infoarena.ro/parsarea-numerelor


Titlul: Răspuns: 869 Reinvent
Scris de: Mihai Calancea din Iulie 12, 2012, 13:19:00
Am marit limita. Inainte sa parsati, anuntati va rog pe forum daca aveti motive bune sa credeti ca limita e prea mica  :). Noi nu avem nicio intentie sa diferentiem sursele cu parsare de celelalte. 


Titlul: Răspuns: 869 Reinvent
Scris de: FII Florea Toma Eduard din August 30, 2012, 16:22:20
Poate ca ma trezesc cam tarziu,dar eu unul am luat 100 pe ea cu vechea limita de timp si fara citire parsata....


Titlul: Răspuns: 869 Reinvent
Scris de: FMI Iustin Bulimar din Decembrie 14, 2013, 21:33:04
Testele nu acoperă un caz, dacă exista un drum direct intre doua sate dar primele băgate în coada de intersectează înainte de a ajunge la ele, atunci rezolvarea pe care au aplicat-o majoritatea va afisa 2 în loc de 1 dar ia tot 100 de puncte


Titlul: Răspuns: 869 Reinvent
Scris de: Mouse Wireless din Septembrie 08, 2017, 22:30:59
O idee "interesanta" pt aceasta problema.

Imparti nodurile de interes random in doua multimi A si B. Faci un BFS pornind simultan din toate nodurile din A iar raspunsul furnizat este cel distanta cea mai scurta catre un nod din B.

Hai sa analizam un pic rezolvarea aceasta. Daca nodurile care dau distanta optima sunt x si y, atunci daca la imparteala noastra random nodurile x si y sunt in multimi diferite, rezultatul furnizat de solutia noastra este chiar raspunsul la problema. Probabilitatea ca x si y sa fie in multimi diferite este evident 1/2. Asadar, algoritmul nostru are probabilitate de esec de 1/2. Cu alte cuvinte, daca repetam algoritmul de P ori, probabilitatea de esec este (1/2)^P. Ca punct de reper, asta inseamna de exemplu ca pentru P = 10, algoritmul esueaza doar o data din 1024 de incercari.

Cum pe infoarena sunt ~10 teste, P=4 sau P=5 ar trebui sa asigure 100 de puncte in majoritatea cazurilor. Eu am trimis cu P=7 to make sure si a intrat :)
Complexitatea este evident O(P * (M + N)) pentru ca realizam P BFS-uri, dar trebuie tinut cont ca constanta acestui algoritm este in general mai mica decat o rezolvare "normala", asa ca in practica acest algoritm scoate timpi comparabili cu rezolvarea optima.