Afişează mesaje
|
Pagini: 1 2 [3]
|
59
|
infoarena - concursuri, probleme, evaluator, articole / Algoritmiada 2013 / Răspuns: Alianta
|
: Martie 24, 2013, 10:08:40
|
Cred ca este gresit exemplul. In exemplu este data relatia (8, 1), adica clanul 8 nu poate face alianta cu clanul 1. Iar la explicatie scrie "Cele 4 clanuri care pot forma o alianta sunt 1, 3, 6 si 8.", adica 1 si 8 intra in alianta.
|
|
|
64
|
infoarena - concursuri, probleme, evaluator, articole / .com 2012 / Răspuns: Troll
|
: Ianuarie 12, 2013, 20:21:36
|
Eu am reusit sa obtin 80p la problema aceasta cu un algoritm destul de slab, dupa parerea mea: sortez intervalele dupa capatul din dreapta, si apoi cu un algoritm greedy verific cate intervale pot lua maxim astfel incat sa nu se intersecteze (fie K numarul maxim de intervale pe care le pot lua astfel incat sa nu se intersecteze); apoi am 2 cazuri: 1.in cele K intervale luate, am cel putin un interval cu valoarea maxima, deci afisez Z-ul cel mai mare si K 2.nu am niciun interval cu valoarea maxima si procedez in felul urmator: iau pe rand fiecare interval dintre cele cu valoare maxima si verific cate intervale trebuie sa scot din cele K astfel incat sa-l pot introduce pe cel ales acum, iar apoi compar cu maximul; deci afisez Z-ul cel mai mare si maximul. Ceea ce e si mai ciudat e faptul ca in prima sursa pe care am trimis-o am facut o eroare destul de grava, care ar fi trebuit sa dea peste cap tot algoritmul: cand sunt in cazul al 2lea si aleg un interval cu valoare maxima, in loc sa-l compar cu cele K intervale deja luate, il compar cu toate intervalele (N) si verific cate ar trebui sa scot pentru a-l introduce pe acesta..ceea ce e evident gresit. De aici deduc ca majoritatea testelor nu au intervale care sa se intersecteze, sau au prea putine.
|
|
|
68
|
infoarena - concursuri, probleme, evaluator, articole / .com 2012 / Răspuns: Feedback Runda 1
|
: Decembrie 22, 2012, 17:25:41
|
sunt curios care era solutia la subset2... poate posta cineva ideea de rezolvare?
Eu am facut in felul urmator: un element x al carui rest prin impartirea la K este r nu poate fi pus in acelasi subset cu un element y al carui rest prin impartirea la K este K - r. Cele cu restul 1 nu pot fi puse in acelasi subset cu cele cu rest K-1, cele cu restul 2 nu pot fi puse in subset cu cele de K-2 etc. De aici se deduce urmatoarea idee: dintre toate elementele care au restul 0 prin impartirea la K poti pune intr-un subset doar un singur element (Evident, daca pui 2, suma lor % K = 0); ai 2 cazuri: 1. daca K este impar, vei adauga in subset toate elementele care prin impartirea la K dau resturile 1, 2, ... K / 2 + un singur element care da restul 0. Pentru fiecare i de la 1 la N % K vei avea (N/K + 1) elemente care dau restul i, iar pentru fiecare i de la N%K + 1 la K/2 vei avea N/K elemente care dau restul i. Rezultatul va fi 1 (elementul cu restul 0) + Min(N%K, K/2) * (N/K + 1) + (K/2 - Min(N%k, K/2)) * (N/K). 2. daca K este par, vei adauga in subset 1 element care da restul 0 si 1 element care da restul K/2 (pentru ca daca adaugi 2, evident, suma lor % K va fi 0) si toate elementele care impartite la K dau resturile 1, 2, ... K/2 - 1. Similar primului caz, pentru fiecare i de la 1 la N%K vei avea (N/K + 1) elemente care dau restul i, iar pentru fiecare i de la N%K + 1 la K-1 vei avea N/K elemente care dau restul i. Rezultatul va fi 1 (elementul cu restul 0) + 1(elementul cu restul K/2) + Min(N%K, K/2 - 1) * (N/K + 1) + (K/2 - 1 - Min(N%K, K/2 - 1)) * (N/K). Sper ca am fost destul de clar in exprimare
|
|
|
72
|
infoarena - concursuri, probleme, evaluator, articole / FMI No Stress 3 / Răspuns: Ubercool
|
: Noiembrie 17, 2012, 15:52:34
|
asta fac si eu..iau pe rand toti exponentii de la 2 la 60 (pot sa am 2^59 < 10^18) si cu cu ajutorul cautarii binare caut baza. daca am gasit o baza a, astfel incat a^b = x (numaru' dat pentru acel test), verific daca a este prim; aici am 2 cazuri: a < 100 000 (verific in vectorul creat cu ajutorul ciurului) si a >= 100 000 (caut in vectorul v in care am numai numere prime < 100 000 daca exista vreun numar v astfel incat a % v = 0 => nu este prim, iar in caz contrar, este prim). nu mi-a intrat decat pe un test, restul wa
|
|
|
|