Lista de probleme 888

Filtrare

#3283 Lee1 C++

Se dă o matrice cu n linii și m coloane. Pentru k poziții date, se cere să se determine drumul de lungime minimă care pleacă de la poziția i1 și j1 și trece prin toate cele k poziții (nu contează în ce ordine), ajungând în final în poziția i2 si j2.

Înainte de a participa la Olimpiada Naționala de Informatică, Zoli s-a decis să se plimbe prin oraș. Orașul în care locuiește Zoli are forma unui arbore, fiecare nod reprezentând o locuință iar deplasarea între acestea se efectuează prin intermediul muchiilor.

Zoli dorește să determine lungimea maximă dintre oricare două locuințe din orașul său.

Studii recente arată că într-adevăr există viață inteligentă pe Marte. Problema de acum este că omenirea se află în război cu Marțienii și cea mai bună strategie pentru noi este să atacăm primii. Pe Marte se află un sistem de cale ferată complex alcătuit din N orașe conectate de M căi ferate bidirecționale.

Omenirea a apelat la cel mai mare bombardier posibil, domnul RANDy, ca să distrugă căile ferate. Pentru că este un maniac, el mai are doar o bombă disponibilă, deci va putea ținti doar o cale ferată. RANDy va ținti doar căile ferate strategice. O cale ferată este strategică dacă și numai dacă există o pereche de orașe (x, y) astfel încât să putem ajunge de la x la y și după bombardarea acesteia, să nu mai poți ajunge de la x la y.

Marțienii încep să se prindă de planul nostru, așa că încep să construiască Q noi căi ferate. După fiecare cale ferată nou adăugată, RANDy vrea să știe câte căi ferate strategice există. El este în dubii, și vă cere ajutorul.

Se citesc două numere naturale nenule n și m. Să se determine toate şirurile cu m elemente din mulţimea {1,2,..,n}, ordonate strict crescător, cu proprietatea că oricare două elemente consecutive în şir au diferenţa mai mică sau egală cu cu 2.

Se dă lista muchiilor unui graf neorientat conex cu n vârfuri, etichetate de la 1 la n. Să se verifice dacă graful este bipartit.

În imperiul maleficului Costel s-a instaurat anarhia. În imperiu sunt n orașe, numerotate de la 1 la n, unite prin m șosele unidirecționale, fiecare șosea fiind controlată de o bandă afiliată la unul dintre cele k sindicate banditești existente în imperiu, numerotate de la 1 la k. Pentru a călători prin pe șoselele din imperiu, orice călător trebuie să plătească taxe sindicatelor: plata taxei către un anumit sindicat îi permite călătorului să folosească nelimitat orice șosea controlată de o bandă afiliată acelui sindicat. Pentru toate sindicatele se plătește aceeași taxă.

Călătorul Gigel trebuie să ajungă din orașul p în orașul q. Determinați numărul minim de sindicate banditești cărora Gigel trebuie să le plătească taxe, pentru a putea realiza călătoria dorită.

Se consideră un șir format din primele N numere naturale nenule. Să se afle numărul de partiții în 2 submulțimi disjuncte cu suma egală care există pentru acest șir.

Fie un șir a = a1, a2, …, aN de numere naturale, nu neapărat distincte, cuprinse între 1 și N. Fie de asemenea două numere naturale x și y. Se definește operația transform(i) astfel: se determină valoarea w = 1 + (x * i + y * ai) mod N, apoi toate elementele egale cu ai din secvența ai, ai+1, …, aN își modifică valoarea în w. După fiecare operație de tip transform se calculează suma elementelor șirului obținut. Să se determine suma maximă care s-a obținut în șirul a efectuând pe rând asupra șirului operațiile transform(1), transform(2), …, transform(N).

#4186 Monede

Se dau n numere naturale reprezentând valorile unor monede și S reprezentând o sumă de bani. Să se afișeze numărul de modalități de a plăti suma cu cele n valori.

Se citesc două numere naturale n și m. Afișați în ordine lexicografică toate submulțimile cu m elemente ale mulțimii {1, 2, ..., n} în care nu există două elemente pare alăturate.