Сб, 18.08.2018, 13:56
Форум інформатиків України
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Вітання на форумі
Незнайомець
Вітаємо на форумі,
Незнайомцю!

 
зареєструйтесь
Перед реєстрацією обов’язково прочитайте:
Оновлення Учасники Пошук
Особисті повідомлення
Видавництво ’’Аспект’’ Видавництво

Модератор форуму: Ktara, Bandalak, НІКОЛЯ, volevikt  
Форум інформатиків » РОЗДІЛ I: ІНФОРМАТИКА, ПРОБЛЕМИ, ОБГОВОРЕННЯ, ВИРІШЕННЯ » 1.11 Змагання, конкурси, олімпіади » Всеукраїнська олімпіада з інформатики (програмування) (Висталяємо завдання та розв'язки)
Всеукраїнська олімпіада з інформатики (програмування)
Ковальчук_Олександр Дата: Вт, 20.11.2007, 21:07 | Повідомлення № 1
Ветеран спілкування
Повідомлень: 3663
Нагороди: 18
Рейтинг: 204
Шановні учасники форуму! Скоро районна олімпіада по інформатиці. Допоможіть мені та іншим вчителям інформатикам, які погано розуміються на задачах олімпіадного рівня, підвищити свої знання в області програмування.

Увага! При публікуванні розв’язку обов’язково, окрім самої паскаль-програми писати математичну модель задачі і роз’яснювати ваш розв’язок максимально зрозуміло. Бо із самого тексту програм, не завжди все зрозуміло для пересічного інформатика.


[admin]Шановні форумчани!!!!!
Повідомлення, які не відповідають темі або несуть некорисний зміст будуть видалятись без попередження!!!


Відредаговано: W-w-W - Пт, 08.01.2016, 00:28
Bandalak Дата: Нд, 27.11.2016, 22:45 | Повідомлення № 166
Лідер форуму
Повідомлень: 5921
Нагороди: 42
Рейтинг: 265
Цитата skif ()
закоментуйте

Це як? Що означає "закоментуйте"?
swetikccc Дата: Нд, 27.11.2016, 22:48 | Повідомлення № 167
Ветеран спілкування
Повідомлень: 4112
Нагороди: 31
Рейтинг: 387
Цитата Bandalak ()
Це як? Що означає "закоментуйте"?

Написати коментарі в коді
skif Дата: Нд, 27.11.2016, 23:18 | Повідомлення № 168
Прописаний назавжди
Повідомлень: 409
Нагороди: 3
Рейтинг: 49
Цитата swetikccc ()
Написати коментарі в коді
саме так)
Bandalak Дата: Пн, 28.11.2016, 00:55 | Повідомлення № 169
Лідер форуму
Повідомлень: 5921
Нагороди: 42
Рейтинг: 265
Program paral;
var a,b:longint;
v,z,c:int64;
p:byte;
{Параметр Р рівний 0, якщо число непросте і 1 якщо просте}
{Процедура pro визначає, чи число V просте, якщо не просте - то видає ще найменший дільник і частку}
procedure pro(v:int64;var p:byte;var d:longint;var ch:int64);{V-об'єм, d перший дільник, ch - частка}
var
i:longint;
begin
if v=2 then p:=1 else
 {2 просте, виділяємо його окремо}
if not(odd(v)) then begin p:=0; d:=2; ch:=v div 2 end {для всіх парних чисел один з множників 2, всі парні(крім 2) не прості}
else
begin {для непарних чисел просте шукатимемо від 3 і далі з кроком 2}
i:=3;p:=1;{припускаємо, що число просте}
while (i<=trunc(sqrt(v)+1)) and (p=1) do {шукаємо доти, поки не досягнемо коріня квадр.з V, або не заперечемо простоту}
begin
if v mod i = 0 then begin p:=0; d:=i; ch:=v div i end; {якщо поділилося, то воно не просте (P:=1) фіксуємо дільник та частку}
i:=i+2; {крок 2, щоб шукати тільки по непарних}
end;
end;
end;
begin
readln(v);
pro(v,p,a,z);
{визначаємо чи об'єм просте число, якщо воно не просте, то ще й шукаємо перше можливе ребро і площу перпендикулярної грані паралепіпеда}
if p=1 then writeln(-1){якщо об'єм був простим числом - то розв'язку не має}
else
begin
pro(z,p,b,c);
{визначаємо чи площа грані просте число, якщо воно не просте, то ще й шукаємо друге та третє можливе ребро}

if p=1 then writeln(-1) else writeln(a,' ',b,' ',c);{якщо площа грані була простим числом, то розв'язку немає, інекше виводимо можливі довжини ребер паралепітеда}
end;
{readln}
{для тестування у середовищі}
end.
Прикріплення: Paralepiped.pas(1.6 Kb)
Bandalak Дата: Пн, 28.11.2016, 01:22 | Повідомлення № 170
Лідер форуму
Повідомлень: 5921
Нагороди: 42
Рейтинг: 265
Вчора пройшла районна олімпіада з програмування у Чернівецькій області!
Прикріплення: ___2016.zip(70.6 Kb)
volodschool2 Дата: Пн, 28.11.2016, 10:02 | Повідомлення № 171
Досвідчений учасник
Повідомлень: 1484
Нагороди: 14
Рейтинг: 344
Цьогорічні завдання районного етапу, Київська область
Прикріплення: inf_zavd.rar(171.3 Kb)
Bandalak Дата: Пн, 28.11.2016, 21:18 | Повідомлення № 172
Лідер форуму
Повідомлень: 5921
Нагороди: 42
Рейтинг: 265
Насправді у вас складніші завдання, чим наші!
volodschool2 Дата: Пн, 28.11.2016, 21:53 | Повідомлення № 173
Досвідчений учасник
Повідомлень: 1484
Нагороди: 14
Рейтинг: 344
Цитата Bandalak ()
складніші завдання
Один учень зробив одну задачу повністю, іншу частково (не всі тести проходить), всі інші учні здали не робочі програми.
Bandalak Дата: Пн, 28.11.2016, 23:23 | Повідомлення № 174
Лідер форуму
Повідомлень: 5921
Нагороди: 42
Рейтинг: 265
У нас два учні зробили 4 з 5 задач повністю, 5-ту частково, ще 5 учнів зробили 2 повністю і 2 частково, нічого не набрали тільки декілька учнів. Правда цього року ми просили не виставляти повністю не підготовлених учасників. Тому приїхало менше, чим минулими роками.
skif Дата: Вт, 29.11.2016, 00:38 | Повідомлення № 175
Прописаний назавжди
Повідомлень: 409
Нагороди: 3
Рейтинг: 49
Цитата Bandalak ()
Насправді у вас складніші завдання, чим наші!
Ви ще львівських не бачили. До D навіть не знаю як підібратись, A та B не складні , C - треба реалізувати алгоритм.
Прикріплення: Desktop1.zip(271.7 Kb)


Відредаговано: skif - Вт, 29.11.2016, 00:40
Bandalak Дата: Вт, 29.11.2016, 10:39 | Повідомлення № 176
Лідер форуму
Повідомлень: 5921
Нагороди: 42
Рейтинг: 265
Цитата skif ()
A та B не складні

Цитата volodschool2 ()
Один учень зробив одну задачу повністю

Розв'язки теж бажано виставити!
swetikccc Дата: Вт, 29.11.2016, 13:25 | Повідомлення № 177
Ветеран спілкування
Повідомлень: 4112
Нагороди: 31
Рейтинг: 387
Цитата skif ()
C - треба реалізувати алгоритм.
Алгоритм
1 Заганяємо рядок в масив сиволів
2 считуємо пару індексів,  порівнюємо елементи і якщо потрібно то міняємо(враховуючи що можуть дати індекси не по зростанню)
3 Поставити  прапорець і проганяти порівняння доки є обмін.
?
1 Це ж який потрібен масив
2 Зчитувати постійно  з пропуском також якось.(можливо індекси для обміну загнати в масив?)

Ваш алгоритм?
Пилипчук_О_П Дата: Вт, 29.11.2016, 19:11 | Повідомлення № 178
Ветеран спілкування
Повідомлень: 4203
Нагороди: 38
Рейтинг: 377
Цитата swetikccc ()
1 Це ж який потрібен масив

Тип AnsiString у FreePascal - рядок необмеженої довжини.

Цитата swetikccc ()
Ваш алгоритм?

1. Читаємо початковий рядок в змінну А.
2. Серед пар номерів знаходимо такі номери, між якими є шлях (наприклад: 7 3, 3 1, 1 5, 1 6).
3. Букви з цими номерами збираємо в рядок В, ставлячи на їх місці в рядку А пропуски.
4. Сортуємо рядок В.
5. Його літери зліва направо ставимо у рядок А на місце пропусків.
6. Якщо залишились пари номерів - переходимо на крок 2.
7. Виводимо рядок А.
skif Дата: Вт, 29.11.2016, 21:37 | Повідомлення № 179
Прописаний назавжди
Повідомлень: 409
Нагороди: 3
Рейтинг: 49
Цитата Пилипчук_О_П ()
Серед пар номерів знаходимо такі номери, між якими є шлях (наприклад: 7 3, 3 1, 1 5, 1 6).
теорія графів - я так само думав в цьому напрямі, тільки інший хід:
1. будуємо таблицю звязності графа (здається так вона називається):
0 0 0 0 1
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0
2. n - кількість символів, які можна переставляти;
2. В циклі від 1 до n
2.1 серед них знаходимо найменший
2.2 серед номерів зв'язаного графа, у якому знаходиться цей найменший симовл шукаємо найменший номер (можна відразу і цей зв'язний граф  відсортувати, далі - перехід до наступного символа/графа)
2.3 міняємо найменший символ і символ з найменшим номером
3. виводжу новий рядок.

Додано (29.11.2016, 20:37)
---------------------------------------------
Цитата Пилипчук_О_П ()
2. Серед пар номерів знаходимо такі номери, між якими є шлях (наприклад: 7 3, 3 1, 1 5, 1 6).
таких шляхів може бути 50 000


Відредаговано: skif - Вт, 29.11.2016, 21:40
Пилипчук_О_П Дата: Вт, 29.11.2016, 22:10 | Повідомлення № 180
Ветеран спілкування
Повідомлень: 4203
Нагороди: 38
Рейтинг: 377
Цитата Пилипчук_О_П ()
3. Букви з цими номерами збираємо в рядок В, ставлячи на їх місці в рядку А пропуски.
4. Сортуємо рядок В.

Ще подумав так: рядок довгий, тому й сортування довго триватиме. Замість цього треба рахувати, скільки яких букв у зв'язному графі. Отже рядок В не потрібен, а потрібен масив цілих чисел з нумерацією від 'a' до 'z', і список позицій, на яких стояли відповідні літери (список треба буде відсортувати і поставити потрібні букви у потрібні позиції).
Форум інформатиків » РОЗДІЛ I: ІНФОРМАТИКА, ПРОБЛЕМИ, ОБГОВОРЕННЯ, ВИРІШЕННЯ » 1.11 Змагання, конкурси, олімпіади » Всеукраїнська олімпіада з інформатики (програмування) (Висталяємо завдання та розв'язки)
Пошук:


© Форум інформатиків України, 2007-2018.