logo

Co zrobić w przypadku błędnej odpowiedzi (WA)?

Zawsze zdarza się, że zła odpowiedź powoduje raczej zbyt duży ból TLE (przekroczenie limitu czasu) tak jak w pierwszym przypadku nie można było ustalić, który przypadek testowy kończy się niepowodzeniem, ale później można oszacować, dla jakiej wartości N (instrukcja Total) wyświetli się TLE. 
 

Co więc robić w tym czasie?

    Przeczytaj uważnie pytanie:Kiedy po raz pierwszy otrzymasz WA (zła odpowiedź), zawsze upewnij się, że przeczytałeś każde słowo i w pełni rozumiesz pytanie, ponieważ w większości przypadków pomijaliśmy tę konkretną część, która jest podstawą całego pytania. 
     Sprawdź formatowanie wejścia/wyjścia:Przeważnie programiści zwykle zapominają dodać nową linię lub spację zgodnie z wymaganiami pytania. Dlatego przed przesłaniem rozwiązania do sędziego internetowego spróbuj uruchomić swój program w kompilatorach online, takich jak code.geeksforgeeks.org Lub pomysł .Sprawdź algorytm/logikę programu:Upewnij się, że używasz poprawnej logiki, która obejmuje wszystkie przypadki testowe, czy nie. 
     Narożne przypadki testoweJeśli to możliwe, spróbuj uruchomić kod w przypadkach testowych granicznych, takich jak 0 1 2 lub N. 

     

Unikaj głupich błędów



    Zainicjuj zmienną:Czasami zapominamy o ponownej inicjalizacji tablic zmiennych po każdym przypadku testowym T. Na przykład: 
    • Zainicjuj wartość zmiennej licznika na 0.
    • Ustawienie wszystkich wartości tablicy DP[] na 0 lub -1.
    Typ danych Przepełnienie:Zawsze pamiętaj o ograniczeniu nałożonym na wartość N lub inne dane wejściowe i ustaw swój program w zakresie poprawnych typów danych, takich jak int long long w C/C++ lub int long w JAVA itp., aby uniknąć przepełnienia. 
     Problem modułowy:W pytaniach takich jak arytmetyka modułowa (odpowiedź % MOD) zawsze upewnij się, że odpowiedź nie otrzymuje wartości ujemnej, więc spróbuj użyć (odpowiedź + MOD) % MOD, który obejmie wszystkie możliwości. 
     

Debugowanie  

    Najważniejszą częścią jest debugowanie:Możesz albo użyć wbudowanego debugera Codeblock Eclipse odpowiednio w C/C++ i JAVA, albo możesz wydrukować zmienną po każdej linii, abyś mógł oszacować, czy Twój program działa zgodnie z Twoimi wymaganiami, czy nie.Użyj asercji:Jeśli masz zamiar napisać wiele wierszy w swoim kodzie, użycie funkcji Assert() jest całkowicie tego warte. Trzask Tutaj aby przeczytać więcej o tym, jak używać asercji w programowaniu konkurencyjnym. 
     Poszukaj podanych sugestii:Chociaż powinien to być ostatni krok, ale musisz zapoznać się z komentarzami podanymi poniżej, w których inni programiści również mogli napotkać ten sam problem i dali wskazówkę, jak wyeliminować ten problem.



Ostatecznie zawsze staraj się napisać czysty kod z małą funkcją, która ma dobrze określony cel.  

 

Utwórz quiz