Można prosić o jakieś dodatkowe, "tricky" testy ? Testy podstawowe mój program przechodzi. Wydaje się, że rozpatrzyłem wszystkie przypadki, ale widocznie nie, bo WA...
created
last reply
- 5
replies
- 1.0k
views
- 5
users
- 1
like
- 1
link
Można prosić o jakieś dodatkowe, "tricky" testy ? Testy podstawowe mój program przechodzi. Wydaje się, że rozpatrzyłem wszystkie przypadki, ale widocznie nie, bo WA...
Właśnie wykonałem to zadanko, ale zastanawia mnie, w jaki sposób można uzyskać czas bliski 0.00
. Mój program rozważa trzy przypadki, używa printf
/ scanf
i liczy tylko na double
'ach, a ma czas 0.16
, który był dla mnie niemałym zaskoczeniem po zobaczeniu najlepszych zgłoszeń biorąc pod uwagę to, że przecież nie ma tu żadnej pętli tylko liczenie na wzorach Dodatkowo mój program używa funkcji z
cmath
i algorithm
, ale różnica między nimi a "własną implementacją" jest niewielka (rzędu 1-2 sekund). W takim razie podejrzewam in/out lub istnienie jakiegoś sprytniejszego algorytmu wymagającego mniej obliczeń/if
ów. Czy ktoś z wybitnym czasem potwierdza drugą opcję? Jeśli tak, to może jakaś mała podpowiedź, jeśli to nie jest wiedza tylko dla wtajemniczonych? Nie zależy mi na aż tak bardzo niskim czasie, po prostu jestem ciekaw, czy te niskie czasy wynikają z jakichś optymalizacji technicznych czy warto spróbować dojść do bardziej optymalnego algorytmu.
Najniższy czas 0.01 uzyskałem dzięki fast i/o + kombinacje alpejskie. Czas 0.7 scanf/printf + kombinacje.
Zastanów się, czy koniecznie trzeba wszystko liczyć na doublach? Czy sprawdzanie i porównywanie nie można zrobić na "zwykłych" liczbach całkowitych i dopiero, gdy wyjdzie taki przypadek, wydrukować tylko końcowe obliczenie w double np printf("%lf\n", sqrt(......));
Dodatkowo, czy int wystarcza? Czy można liczyć na intach i sprawdzać czy nie przekraczamy ich zakresu?
Zamiast porównywać sqrt() z costam, można porównywać sqrt()^2 z costam^2
Zamiast
sqrt(pow(x2-x0,2)+pow(y3-y1,2))
lepiej
sqrt((x2-x0)*(x2-x0).......)
a jeszcze lepiej
hypot(x2-x0,y3-y1) //ładniejszy i krótszy zapis i bezpieczeństwo obliczeń, a szybkość taka sama, lub nie wiele wolniej/szybciej.
Topic | Category | Replies | Views | Activity |
---|---|---|---|---|
Liczby Pierwsze | Zbiór zadań | 2 | 157 | May '24 |
FR_19_09 - Trójkątne łazanki | Zbiór zadań | 7 | 217 | Jun '24 |
TFRACAL - Kalkulator ułamków | Zbiór zadań | 2 | 91 | Feb 1 |
Zadanie Szyfrowanie2 | Zbiór zadań | 6 | 173 | May '24 |
TOPSORTL - Porządek leksykograficzny w grafie | Zbiór zadań | 3 | 81 | Jul '24 |