Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Robie sobie przed obozem informatycznym różne zadanka.
I http://sio.mimuw.edu.pl/user.phtml/zap.pdf?op=get&id=77871 w tym mam taki problem ze tam jest pewna zaleznosc z NWD ale reczne liczenie na chama w pętlach sie wywali na wiekszych liczbach. Macie jakiś inny pomysł, chętnie poprosiłbym o jakies podpowiedzi matematyczne?
Moj obecny kod:
#include <iostream> using namespace std; int nwd(int a,int b) { if(b==0) return a; nwd(b,a%b); } struct zapytanie { int a; int b; int d; int je; }; int main() { int n; cin >> n; zapytanie *tab = new zapytanie[n]; for(int i=0;i<n;i++) cin >> tab[i].a >> tab[i].b >> tab[i].d; for(int i=0;i<n;i++) { tab[i].je=0; for(int x=1;x<=tab[i].a;x++) for(int y=1;y<=tab[i].b;y++) if(nwd(x,y)==tab[i].d) tab[i].je++; } for(int i=0;i<n;i++) cout << tab[i].je <<endl; return 0; }
Offline
Właśnie tak mam to zrobione ale na zestawie tysięcy liczb kilkucyfrowych do miliona bede czekał w nieskonczonosc z moim rozwiazaniem - musi istniec jakis bardziej elegancki sposob i szybszy ?
Offline
Próbowałeś funkcji bez rekurencji?
Z tego co pamiętam to na tego typu konkursach raczej nie używa się strumieni tylko stdio.h (ewentualnie cstdio jak już chcesz w ++);)
Na upartego tą linijkę:
if(nwd(x,y)==tab[i].d) tab[i].je++;
można by zamienić na
tab[i].je += (nwd(x, y) == tab[i].d);
ale to już może przesada =) no i większej różnicy nie będzie..
A gdyby tak zadeklarować tablice/tablicę struktur o określonym(czyt. max dopuszczalnym w zadaniu) rozmiarze zamiast przydzielać pamięć dynamicznie?
//takie luźne przemyślenia
pzdr.
Offline
Ja to bym Ci polecil niebieskie ksiazeczki z OI. Sam zawsze do nich zagladam jak mam jakis problem. Nie wkleje Ci linka, bo w tej chwili strona OI nie dziala, a nie jestem pewien, czy znajdziesz tam najnowsze wydania.
Offline
Zapomniałem o książeczkach - Dzięki za przypomnienie i sugestie ;-)
Offline