Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

OI Alogrytmy C++ Bajtolandia i Bajtazar


HardCoreXPL

Rekomendowane odpowiedzi

Opublikowano

Witam serdecznie,
Ostatnio nauczyciel od "programowania" --przecież teraz w technikum nawet c++ nie ma, dzięki reformo edukacji-- wskazał mi stronę Olimpiady Informatycznej, czytam przykładowe zdania i nie mogę załapać co i jak. Myślę, że najgorszy jest początek, przecież nigdy nie spotkałem się z takimi problemami jakie są przedstawiane w tych zadaniach. Literatura, jaką czytałem albo jest zbyt nudna i wyjaśniająca to co umiem albo zbyt trudna przy mojej znajomości nazewnictwa i algorytmów.
Chciałbym przeczytać/zobaczyć/usłyszeć coś co zrozumiem i nie usnę przy tym. Czy moglibyście mi polecić jakieś strony,blogi,pdf'y,filmy,etc., które w pozwolą mi na wykonanie typowych zadań z oi lub z tej strony http://main.edu.pl/pl/archive?

Na ten moment opanowałem jedynie php do programowania obiektowego włącznie. Przykłady najlepiej jakby były w C++.

 

Za wszelką pomoc bardzo dziękuję. I proszę nie hejtujcie mnie za moją niewiedzę, lecz konstruktywną krytykę zawsze cenię :)

Opublikowano

To jest algorytmika, wystarczą ci naprawdę podstawowe umiejętności programowania, ważne jest tutaj wymyślenie najbardziej optymalnego rozwiązania, raczej logicznego myślenia żadna książka cię nie nauczy, zacznij sobie od łatwiejszych zadań np na spoju a później zabieraj się za coraz trudniejsze.

Bot do gry NosTale:


[bOT] NosBota 1.3v

Opublikowano

Dobra spoj to już jest coś.

Właśnie o takie coś mi chodzi. Wiem że tam potrzeba podstaw programowania i specyficznego myślenia, które chce sobie wyrobić.

Opublikowano

W algorytmice musisz mieć mózg wytrenowany, głównie z matematyki.

 

Co do technikum to chyba u Ciebie. Jakoś C++ było dużo na egzaminach.­

 

Nad takimi zadaniami z pewnością długo posiedzisz niż nawet spróbujesz je rozwiązać.

pyhvh7E.png


 


Opublikowano

Wiele problemów można bardzo elastycznie sprowadzić do innych. Np wszystkie problemy klasy NP można przekształcić na jednakowe.

Kluczowe jest znanie podstawowych algorytmów jak i rodzaje problemów, które rozwiązują.

Jeśli długie lektury ci nie przeszkadzają to bardzo dobrą książką jest "Wprowadzenie do algorytmów" Cormena. Zawiera dużo teorii, która nie jest konieczna i można ją pominąć, ale poza tym w bardzo dobry sposób naprowadza na dobrą ścieżkę myślenia i prezentuje bardzo dobrze podstawowe wiadomości.

Jest z tym trochę jak z matematyką. Trzeba dużo kombinować i przekształcać przy trudniejszych zadaniach i ciężko jest nauczyć się tego gdzieś bez żadnej praktyki. Tak jak wyżej ktoś wspomniał, spoj to dobre miejsce żeby zacząć.

Im więcej algorytmów (wystarczy, że wiesz, że istnieją i potrafisz ocenić czy się nadają do tego problemu. Dokładne działanie zawsze można gdzieś znaleźć opisane.) znasz tym łatwiej ci będzie robić trudniejsze zadania, bo będziesz miał większą przestrzeń do myślenia.

Opublikowano

@Sopelek997

wszystkie problemy klasy NP można przekształcić na jednakowe

Nawet nie wiesz jak to może być pomocne :D A co do książki trzeba będzie zobaczyć.

Myślę, że najgorszy jest początek gdy nie wiesz za co się złapać, później to tylko poznawanie nowych algorytmów. Przecież całą matematykę można rozbić na jedynki i zera.
@szymon
U mnie nawet rozszerzonej informatyki nie ma niestety, a na zawodowych najbardziej zaawansowane są podstawy php.

 

Dobra mam taki kod

#include <cstdio>

int main() {
	int t,c,k,w;
	scanf("%d",&t);
	while(t--) {
		scanf("%d %d %d",&c,&k,&w);
		if(c*w<=k)
			printf("yes\n");
		else
			printf("no\n");
	}
	return 0;
}

I moje pytanie jest następujące. Czy przy scanf używa się referencji "&t,&c,&k,&w" dla przyspieszenia programu, czy może ma to jakieś inne znaczenie?

Opublikowano

­scanf używa referencji, ponieważ ich potrzebuje. Przekazywanie referencji to przekazywanie adresu zmiennej do funkcji, dzięki czemu funkcja może odwołać się bezpośrednio do zmiennej poprzez wskaźnik na nią. Kiedy podajemy zmienną do funkcji w normalny sposób, funkcja tworzy kopię danej zmiennej do swojej dyspozycji i pracuje na niej - w tym wypadku nie miałoby to sensu, ponieważ podalibyśmy zmienne c, k i w do funkcji i co? Dane zostałyby do nich wczytane, ale funkcja nie ma możliwości ich zwrócenia.

Dlatego przekazuje się je referencyjnie - tworzymy zmienne w naszej funkcji main(), a potem tylko pokazujemy funkcji gdzie one dokładnie się znajdują w pamięci programu, żeby ta mogła zapisać do nich dane.

846331404756772371599.jpeg
Opublikowano

Witam ponownie,
Dziękuję za wszelką pomoc, lecz mam do was kolejną prośbę. Wykonując zadania na SPOJU Spotkałem się z tym zadaniem http://pl.spoj.com/problems/AL_16_02/ i za bardzo nie wiem jak się za to zabrać. Czy mógłby ktoś mi wytłumaczyć jak działają te "typowe zadania z enigmą" ?
 

Człowieku, ale to jest C, nie C++.
­

Rozwiń proszę swoją wypowiedź. Chodzi ci o to że to jest składnia z C? Z tego co się orientuję w C++ też działa :)

Opublikowano

@HardCoreXPL

  1. Łamiesz kod - tu Ci programowanie nie potrzebne, jedynie spostrzegawczość.
  2. Jak już wymyślisz klucz do łamania kodu to piszesz program przestawiający literki wg tego klucza.

W tym przykładzie:

AMK LA A OTA
BIL OLEK  OLEK
EWWLPRK NIGMA  ERSJI IGHT O AZ OLEJNY

wyjście będzie takie:

ALA MA KOTA
BOLEK I LOLEK
ENIGMA W WERSJI LIGHT PO RAZ KOLEJNY

Czyli klucz jest taki: pierwszy wyraz kodu zawiera pierwsze litery brakujące w wyrazach kolejnych, jak są dwie spacje to znaczy, że pomiędzy nimi będzie pojedyncza litera.

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...