dNa zadatak biciklisti stalno dobijam "prekoraceno vremesnko ogranicenje" ali sumljam da je to problem. jer ne koristim rekurzija, rjenje je O(n^2), a nista ne prolazi na vreme.
Dali je moguce da ustvari imam prekoraceno memorisko ogranicenje (jer bas i ne koristim efikasne strukture podatka), a da server po greska vraca problem sa memorijom?
dDali na biciklisti prlazi matrica rastojanija ili moram korostiti liste susjednosti?
bMislim da ti nece proci matrica. Mada, zasto bi je inace koristio. Ti imas n grana u najgorem slucaju, a ne n^2, zar ne?
dDali je moguce da poraka glasi "sistemska greska ili prekoraceno memorisko ogranicenje" a ustvari da je problem sa vremenskom?
bMalo teze... Gledao sam test primere i oni na kojima dobijas imaju n tacno 8000, a svi ostali (koji ti i na vremenu pucaju) imaju manje od 8000.
dma ne, ovo sam pitao oko polinoma, jer ne mogu razumeti kako je moguce da postoi nesto brze is ovo sta ja radim.
bI pitas u temi o biciklistima :)
Sta ti radis sa polinomima? Koja je vremenska slozenost?
dPa radim ovo: racunam ostatke pojedinih stepena, a kao sto radim to, racunam i sumu i to pamtim. Prvi put kad se pojavi ostatak 1 (ako se pojavi) racunam koliko takvi grupe ima, mnozim to i sumiram za ostatka (one poslednje stepene koi ne formiraje cielosnu grupu) Ako broj 1 ne se pojavlja kao ostatak, to znci da ne ce bude povtaranja ostatka, i mora da se ide do kraj. Evo i kod, pa obrisete ga po nekoliko dana kad iskomentisete:
#include <iostream>
#include <vector>
using namespace std;
int i,j,k,l,n,m,a,odg;
int ost[100];
int res[100];
int main()
{
scanf("%d%d%d",&a,&n,&m);
bool proverka=false;
bool t=true; k=0; res[0]=1; ost[0]=1;
while (t==true)
{
k++;
if (k<=n)
{
ost[k]=(ost[k-1]*a)%m;
if (ost[k]!=1) res[k]=(res[k-1]+ost[k])%m; else {t=false; proverka=true;}
}
if (k>n) t=false;
}
if (proverka==true)
{
k--;
l=(n+1)%(k+1);
odg=res[k]*(int((n+1)/(k+1)))+res[l];
printf("%d\n",odg%m);
}
else cout<<res[k-1]%m<<"\n";
return 0;
}
bMozda gresim sa ovim zadatkom, tacnije ne razumem tvoj kod, pa pre nego sto te uputim dalje, hajde probaj na tvom racunaru za test primer
A = N = 10^9, a M = 123456789 - nije ni bitno