Сайт підготовки до олімпіади з інформатики

програмування в С++

Школа олімпійського резерву з інформатики
Заняття 24.09.2019 PDF Печать E-mail
Добавил(а) Administrator   
30.09.19 13:51

Повторення

C++

Python

Ціле

int

/, %

Дійсне

ouble a;   a=3.14

cout.precisio(2);

cout<<fixed<<a<<endl;    

int

//, %

float

print('%.3f' %i)

x =3.1234567

x =float('{:.3f}'.format(x))

str

print(2, end='')

print(a,b,sep="")

 

Розвяжіть

https://www.e-olymp.com/uk/problems/8604

 

Розгалуження

==

!=

&&

||

https://www.e-olymp.com/uk/problems/8611

https://www.e-olymp.com/uk/problems/7234

Цикл

https://www.e-olymp.com/uk/problems/8909

https://www.e-olymp.com/uk/problems/8927

https://www.e-olymp.com/uk/problems/8929

 
Заняття 17.09.2019 PDF Печать E-mail
Добавил(а) Administrator   
30.09.19 13:48

1 Завдання 11.09.2019 Розгалуження

 Повторення

Ціле /, %

Дійсне

Розгалуження

https://www.e-olymp.com/uk/problems/8860

https://www.e-olymp.com/uk/problems/8872

https://www.e-olymp.com/uk/problems/8877

Задачіна самостійне опрацювання 8861-8908

 

 

2 Завдання 18.09.2019  Двовимірні масиви

 

Двовимірня масиви

 

https://www.e-olymp.com/uk/problems/2099

 

https://www.e-olymp.com/uk/problems/841

 

https://www.e-olymp.com/uk/problems/85

 

https://www.e-olymp.com/uk/problems/2668

 

https://www.e-olymp.com/uk/problems/1055

 

3. Заняття 18.09.2019 Граф Пошук в глибину

 

Графи

Пошук в глибину

https://www.e-olymp.com/uk/problems/122

Маршрути в горах

Гірський туристичний комплекс складається з n турбаз, з’єднаних між собою k гірськими переходами (інші маршрути в горах небезпечні). Кожен перехід між двома базами займає 1 день. Туристична група знаходиться на базі a і збирається потрапити на базу b не більш ніж за d днів. Скільки існує різних таких маршрутів (без циклів) між a і b?

Вхідні дані

В першому рядку через проміжок записані числа n, k, a, b, d (n ≤ 50, d ≤ 10). Кожен з наступних k рядків містить пару чисел, яка описує можливий гірський перехід. Усі числові значення натуральні.

Вихідні дані

Вивести одне число – кількість маршрутів.

Ліміт часу 1 секунда

Ліміт використання пам'яті 64 MiB

Вхідні дані #1

5 8 2 5 3

1 2

1 3

1 5

2 1

2 4

3 4

3 5

4 1

0

1

1

0

1

1

0

0

1

0

0

0

0

1

1

1

0

0

0

0

0

0

0

0

0

void p(int I, int v)

{c[i]=v;

if( (v==b && i<=d+1) || i>d+1)

{for(int j=1;j<=I;j++)cout<<c[j]<<” “;

cout<<endl;

//аналіз результати

}

else

for(int j=1 ;j<=n;j++)

if(a[v][j]==1                   // аналіз входу ) p(i+1,j)

}

main()

{

матриця

p(1,a);

}

Додатково

https://www.e-olymp.com/uk/problems/4000

https://www.e-olymp.com/uk/problems/1977

 

Последнее обновление 30.09.19 13:53
 
Заняття 11.09.2019 PDF Печать E-mail
Добавил(а) Administrator   
30.09.19 13:44

1 Завдання 11.09.2019 Цифри

Проста задача на цифри

https://www.e-olymp.com/uk/problems/1

https://www.e-olymp.com/uk/problems/903

 https://www.e-olymp.com/uk/problems/8840 ... https://www.e-olymp.com/uk/problems/8854

 

 2 Завдання 11.09.2019 Масиви

https://www.e-olymp.com/uk/problems/4765

 https://www.e-olymp.com/uk/problems/2099

 https://www.e-olymp.com/uk/problems/841

 https://www.e-olymp.com/uk/problems/85

 https://www.e-olymp.com/uk/problems/2668

 https://www.e-olymp.com/uk/problems/1055

 

 

3 Заняття 11.09.2019 Поняття граф

Теорія графів

Основні алгоритми роботи з графами:

 

http://www.e-olymp.com/uk/problems/4764 -  Матриця суміжності, степінь вершин

http://www.e-olymp.com/uk/problems/4763 -  Від списку ребер до матриці суміжності

 

https://www.e-olymp.com/uk/problems/3987 - Повний граф

Проста задача на цифри

https://www.e-olymp.com/uk/problems/1

https://www.e-olymp.com/uk/problems/903

 

https://www.e-olymp.com/uk/problems/8840

https://www.e-olymp.com/uk/problems/8841

https://www.e-olymp.com/uk/problems/8842

https://www.e-olymp.com/uk/problems/8843

https://www.e-olymp.com/uk/problems/8844

https://www.e-olymp.com/uk/problems/8845

https://www.e-olymp.com/uk/problems/8846

https://www.e-olymp.com/uk/problems/8847

https://www.e-olymp.com/uk/problems/8848

https://www.e-olymp.com/uk/problems/8849

https://www.e-olymp.com/uk/problems/8850

https://www.e-olymp.com/uk/problems/8851

https://www.e-olymp.com/uk/problems/8852

https://www.e-olymp.com/uk/problems/8853

https://www.e-olymp.com/uk/problems/8854

 

 

 

 
Заняття 04.09.2019 PDF Печать E-mail
Добавил(а) Administrator   
30.09.19 13:40

Завдання IІ етапу Всеукраїнської учнівської олімпіади

з інформатики у 2018/2019 н.р.

http://nvk26.lutsk.ua/cgi-bin/new-client?contest_id=76

 

Логін school2019-2020-1 .... school2019-2020-50 Пароль -1 

 

Задача A. Простий калькулятор (100 балів)

https://www.e-olymp.com/uk/problems/8319

Обмеження часу: 1 с

Обмеження пам'яті: 128 M

Простий калькулятор може обчислювати наступні вирази:

Num1 + Num2

Num1 - Num2

Num1 * Num2

Num1 / Num2

Де num1 і num2 цілі числа (не більші за 100000).

Знайдіть значення заданого виразу. Символи + - * / позначають відповідно операції додавання, віднімання, множення та ділення відповідно. Всі операції цілочисельні, тобто 5/3=1.

Вхідні дані. Рядок містить вираз який має обчислити простий калькулятор.

Вихідні дані. Виведіть результат виразу, який потрібно обчислити.

Приклади вхідних та вихідних даних

input.txt

output.txt

3 * 12

36

16 + 45

61

Задача B. Задача Фокус-покус (100 балів)

Обмеження часу: 1 с

Обмеження пам'яті: 256 M

Петрик П’яточкін загадав число від 1 до 109, а Вам повідомив три остачі, які утворилися при діленні загаданого числа на числа 971, 997, 1033. Зробіть фокус – швидко відгадайте число. Напишіть програму, що за даними остачами, знаходить загадане число.

Вхідні дані. Єдиний рядок містить три натуральних числа.

Вихідні дані. Єдиний рядок має містити одне натуральне число.

Приклад вхідних та вихідних даних

input.txt

output.txt

5 10 15

835049324

Задача С. Розфарбування таблиці множення (100 балів)

Ім’я вхідного файлу: іnput.txt

Ім’я вхідного файлу: output.txt

Обмеження часу: 1 с

Обмеження пам'яті: 16 M

Таблицею множення назвемо таблицю розміру n рядків на m стовпців, в якій на перетині i-го рядка і j-ого стовпця розміщене число i * j (рядки і стовпці нумеруються з одиниці).

В одній з математичних шкіл було вирішено провести педагогічний експеримент. Для того, щоб учням було простіше запам'ятовувати таблицю множення, деякі числа в ній будуть пофарбовані в червоний, деякі - в синій, а деякі - в зелений колір (решта чисел будуть чорними).

Процес фарбування чисел можна умовно розбити на чотири етапи. На першому етапі всі числа фарбуються в чорний колір. На другому - всі парні числа фарбуються в червоний колір, на третьому - всі числа, що діляться на 3, фарбуються в зелений колір, на четвертому - всі числа, що діляться на 5, фарбуються в синій колір.

Директор школи хоче знати, яку кількість картриджів для принтерів необхідно закупити для друку таблиць. Тому йому необхідна інформація про те, скільки чисел якого кольору буде в розфарбованій таким чином таблиці множення n на m. Напишіть програму, яка допоможе у підрахунку таких кількостей.

Вхідні дані. Рядок містить два натуральних числа n і m (1 ≤ n, m ≤ 1000).

Вихідні дані. У першому рядку виведіть кількість чисел, пофарбованих у червоний колір, в другій - у зелений, в третій - у синій, в четвертій - у чорний. Дотримуйтесь формату, наведеному в прикладах.

Приклади вхідних та вихідних даних

input.txt

output.txt

10 10

RED : 21

GREEN : 39

BLUE : 36

BLACK : 4

5 2

RED : 5

GREEN : 2

BLUE : 2

BLACK : 1

Задача D. Ліфт (100 балів)

https://www.e-olymp.com/uk/problems/2205

Ім’я вхідного файлу: іnput.txt

Ім’я вхідного файлу: output.txt

Обмеження часу: 1 с

Обмеження пам'яті: 64 M

Щоб підняти на N-й поверх M-поверхового будинку новий холодильник, Степан визвав бригаду вантажників. Оплата роботи вантажників відбувається таким чином: за підйом холодильника на один поверх необхідно заплатити 200 гривень, за спуск на один поверх – 100 гривень. За підйом та спуск ліфтом оплата не береться. Незважаючи на те, що в Степановому будинку є ліфт, йому, напевно, все ж таки доведеться заплатити вантажникам, тому що ліфт зупиняється тільки на кожному K-му поверсі, починаючи з першого (тобто на поверхах з номерами 1, K+1, 2K+1, 3K+1, …). Необхідно знайти, якої мінімальної суми грошей буде достатньо, щоб вантаж

 

ники доставили холодильник з першого поверху на N-й.

Вхідні дані. У рядку записані три числа: M (2≤M≤100), N (2≤NM) и K (2≤KM-1), розділені пропусками.

Вихідні дані. Вивести єдине число – мінімальну вартість підйому холодильника.

Приклад вхідних та вихідних даних

input.txt

output.txt

20 7 4

200

20 7 2

0

Всі завдання необхідно виконати за 3 години

http://nvk26.lutsk.ua/cgi-bin/new-client?contest_id=76

 

Последнее обновление 30.09.19 13:44
 
Підсумок PDF Печать E-mail
Добавил(а) Administrator   
23.05.19 14:32

Вітаю з завершенням навчального року!

Вітаю з перемогами в олімпіадах: міських(районних), обласних, всеукраїнських, міжнародних (студентських) !

Чим зайнятися після навчання: вчити програмування  

 https://prometheus.org.ua/   НАЙКРАЩІ ОНЛАЙН-КУРСИ УКРАЇНИ ТА СВІТУ  
 
https://itvdn.com  ITVDN - самые популярные видео курсы онлайн программирования. У нас вы найдёте курсы по С#/.NET Developer, Frontend Developer, ASP.NET MVC 
 
Основи програмування CS50 (Гарвардський курс)
 
 
https://cyberua.info/tag/informatyka/ 
 
Навчальні YouTube канали з програмування  
http://it-science.com.ua/article.php?id=9&table=dev
 
   
Особливу увагу звертаю на вичення PYTHON 
Область вкладених 

Дивіться матерали 2018/2019 н.р.

Посилання на папку з матеріалами

 
Заняття 31.10.2018 PDF Печать E-mail
Добавил(а) Administrator   
31.10.18 22:55
1. Зареєнтернет олімпіаді http://176.102.48.88/vippoolimp
2. Розв'язати задачі турніру  http://nvk26.lutsk.ua/cgi-bin/new-client?contest_id=60 
3. Розв'язувати задачі Всеукраїнської Інтернет олімпіади  https://netoi.org.ua/index_ua.php?lng=ua&cid=1918
 
Матеріали школи 2018-2019 PDF Печать E-mail
Добавил(а) Administrator   
31.10.18 22:49

Посилання на папку з матеріалами

 

 
Заняття (21.03.2018) PDF Печать E-mail
Добавил(а) Administrator   
23.03.18 10:57

Зміст

pair<type1, type2>.. 2

vector<type1>.. 3

stack<type1>.. 4

deque<type1>.. 5

map<type1, type2>.. 6

set<type1>.. 7

Задачі з e-olymp. 8


pair<type1, type2>

pair<int, int> p;

p.first - перший елемент

p.second - другйи елемент

Інші, можливі, приклади пар:

pair<double, double>

pair<pair<int, int>, int>

pair< pair<int, int>, pair<int, int> >

pair<long long, vector<int> >

vector<type1>

vector<int> m;

m.push_back(a); - добавити в кінець елемент a

m[i] – звернутия до i-ого елемента

m.size() - розмір вектора

m.back() - останній елемент вектора

m.clear(); - очистити вектор

m.empty() - true якщо вектор пустий, інакше false

m.begin() і m.end() - почак і кінець вектора. Необхідні для сортування

m.erase(m.begin()+i); - видалити i-ий елемент

m.erase(m.begin()+i, m.begin()+j); - видалити елементи від i-ого до j-ого

Видалення працює за лінійний час, тобто доволі довго.


stack<type1>

stack<int> s;

s.push(a); - добавити елемент a

s.size() - розмір стека

s.top() - останній елемент стека

s.pop() - видалити останній елемент стека

s.empty() - true якщо стек пустий, інакше false


deque<type1>

deque<int>d;

d.push_front(a); - добавити елементa на початок дека

d.push_back(a); - добавити елементa в кінці дека

d.front() - перший елемент дека

d.back() - останній елемент дека

d.pop_front(); - видалити перший елемент

d.pop_back(); - видалити останній елемент

d.size() - розмір дека

d.empty() - true якщо дек пустий, інакше false

d.clear(); - очистити дек

d[i] - i-ий елемент в деці


map<type1, type2>

map<int, int> m;

map<int, int>::iterator it; - ітератор(вказівник) на певний елемент мапи

m[i] = a; - присвоєння елементу мапи з індексомi значення a

m.count(i) - перевірка чи використовувався елемент з індексом і

m.clear(); - очистити мапу

m.begin() - початок мапи і заодно вказівник на перший елемент

m.end() - вказівник на кінець мапи. Розташований на 1 позицію дальше від останнього елмента мапи

m.empty() -true якщо мапа пуста, інакше false

m.size() – розмір мапи(кількість елементів, які використовувалися в мапі)

it->first - індекс елемента мапи на який вказуєit

it->second - значення елемента мапи на який вказує it


set<type1>

set<int>s;

set<int>::iteratorit; - ітератор(вказівник) на певний елемент сета

multiset<int>s2; - сет в якому можуть повторюватися значення

s.insert(a); - вставити елементa в сет

s.begin() - вказівник на початок сета і одночасто і на перший елемент

s.end() - вказівник на кінець сета. Розташований на 1 позицію дальше від останнього елмента сета

s.erase(a) - видалити елемент(всі елементи) aв сеті(мультисеті)

s.erase(it) - видалити елемент, на який вказує вказівник it

s.find(a) - вказівник на елемент aв множині, або s.end() якщо такого елемента в сеті немає

s.upper_bound(a) - вказівник на перший елемент, який строго більшийa

s.lower_bound(a) - вказівник на перший елемент, який більший або рівний a

s.size() - розмір сета

s.clear(); - очистити сет

s.empty() - true якщо сет пустий, інакше false

*it- значення самого елемента в сеті

it++; - перенести вказівник на наступний елемент в сеті

it--; - перенести вказівник на попередній елемент в сеті

Приклад проходу по всьому сетові(знаходення суми всіх елементів) :

for(it=s.begin();it!=s.end();it++)

{

        sum+= *it;

}


Задачі з e-olymp

291 – set + deque

555 – set

693 – stack

694 – deque

790 – set

1211 – map

1225 – set

1226 – set

1227 – set

1228 – set

1776 – stack

1868 – map

1871 – stack

1872 – vector

2040 – map(можна простими масивами, але для розуміння краще зробити використовуючи map)

2479 – stack

2661 – set

3004 – set

Примітка: setпідрозуміває використання setабо multiset, в залежності від задачі

 


Страница 2 из 26

Статистика

Пользователей : 152
Статей : 220
Просмотрено статей : 88429

Вход/Регистрация

Нет