SlideShare a Scribd company logo
1 of 19
Download to read offline
Всероссийская олимпиада школьников по
информатике
Региональный этап, II тур
Разбор задач
Андрианов И. А.
Стрекаловский О. А.
Вологодский государственный университет
Факультет прикладной математики,
компьютерных технологий и физики
Вологда
2015 г.
1/19 Всероссийская олимпиада школьников по информатике
«Кольцевая линия»
Согласно условию 0 ≤ Da, Db ≤ N/2
Обозначим станцию Андрея A, а станцию Бориса B
Если для двух выбранных станций A и B существует
хотя бы одна пара [Da, Db] такая, что среди станций
{A + Da, A − Da, B + Db, B − Db} есть две или более
совпадающих, то станции A и B не могут быть выбраны
Если станция не определяется однозначно по [Da, Db] ⇒
существует хотя бы две станции, до каждой из которых
можно доехать из A за Da перегонов и из B за Db
перегонов
Очевидно, что A и B не должны располагаться за равное
число перегонов по часовой стрелке и против часовой
стрелки
2/19 Всероссийская олимпиада школьников по информатике
«Кольцевая линия»
Рассмотрим случай, когда количество станций N нечетно.
Пусть Андрей живёт на любой из N станций
Зафиксируем станцию, на которой живёт Андрей.
Это можно сделать N способами
Борис не может жить только на станции A, т.к. только при
0 перегонов между A и B может быть одинаковое
расстояние в обоих направлениях ⇒
Борис может жить на любой из оставшихся N − 1 станций
Итого N ∗ (N − 1) пар станций таких, что любая станция
определяется уникальной парой расстояний [Da, Db] при
фиксированных номерах A и B
3/19 Всероссийская олимпиада школьников по информатике
«Кольцевая линия»
Рассмотрим случай, когда количество станций N четно.
Пусть Андрей живёт на любой из N станций
Зафиксируем станцию, на которой живёт Андрей.
Это можно сделать N способами
Борис не может жить только на станциях A и A + N/2,
т.к. только при таком размещении между A и B может
быть одинаковое расстояние в обоих направлениях ⇒
Борис может жить на любой из оставшихся N − 2 станций
Итого N ∗ (N − 2) пар станций таких, что любая станция
определяется уникальной парой расстояний [Da, Db] при
фиксированных номерах A и B
4/19 Всероссийская олимпиада школьников по информатике
«Кольцевая линия»
Типичные ошибки
Неэффективное решение.
Поиск всех подходящих пар станций через из их перебор
5/19 Всероссийская олимпиада школьников по информатике
Вопросы по задаче?
6/19 Всероссийская олимпиада школьников по информатике
«Вырубка леса»
Основная идея
Двоичный поиск по минимальному количеству дней, которое
хватит для вырубки всех деревьев при одновременной работе
обоих лесорубов.
7/19 Всероссийская олимпиада школьников по информатике
«Вырубка леса»
Определение границ поиска
Минимально может потребоваться один день ⇒
левая граница поиска 0
Максимально может потребоваться 2 ∗ X/(A + B) дней,
если бы лесорубы работали бы с минимальным рабочим
интервалом в 1 день ⇒
правая граница поиска 2 ∗ X/(A + B) + 1
8/19 Всероссийская олимпиада школьников по информатике
«Вырубка леса»
Вычисление значения функции в фиксированной точке
«Сколько деревьев срубит первый и второй лесоруб за
фиксированное количество дней»
За N дней первый лесоруб, срубая A деревьев в день,
и, отдыхая каждый B–й день, срубает (N − ⌊N/B⌋) ∗ A
деревьев
За N дней второй лесоруб, срубая C деревьев в день,
и, отдыхая каждый D–й день, срубает (N − ⌊N/D⌋) ∗ C
деревьев
Складываем показатели обоих лесорубов
9/19 Всероссийская олимпиада школьников по информатике
«Вырубка леса»
Итоговый код двоичного поиска на Java
long l e f t = 0;
long r i g h t = 2 ∗ X / (A + C) + 1;
while ( r i g h t − l e f t > 1) {
long days = ( l e f t + r i g h t ) >>> 1;
long removedByFirst = removedTrees (A, B, days ) ;
long removedBySecond = removedTrees (C, D, days ) ;
i f ( removedByFirst + removedBySecond >= X) {
r i g h t = days ;
} else {
l e f t = days ;
}
}
return r i g h t ;
«А. C. Станкевич. Лекция 2: Сортировка и поиск».1
1
http://www.youtube.com/watch?v=qkLLcdgJj_o
10/19 Всероссийская олимпиада школьников по информатике
«Вырубка леса»
Типичные ошибки
Неэффективное решение.
Линейный поиск дня окончания работ
Использование 32–x разрядного типа данных
Переполнение 64–х разрядного типа данных при подсчёте
числа вырубаемых деревьев при фиксированном
количестве дней
В случае совпадения дней отдыха при полной вырубке
деревьев необходимо брать предыдущий день
Ошибки в реализации двоичного поиска (дают TLE/WA):
Неправильная оценка границ поиска
Неправильное сужение границ поиска
Неправильный выбор ответа, когда поиск останавливается
11/19 Всероссийская олимпиада школьников по информатике
Вопросы по задаче?
12/19 Всероссийская олимпиада школьников по информатике
«Укладка плитки»
Основная идея
Динамическое программирование по профилю.
count[i][j][k] - количество способов заполнить первые i − 1
столбцов плитками при профиле i–ого столбца [j][k].
В профиле [j][k]
j = 1, если в верхней строке i–ого столбца ячейка заполнена,
k = 1, если в нижней строке i–ого столбца ячейка заполнена.
13/19 Всероссийская олимпиада школьников по информатике
«Укладка плитки»
1 Фиксированной плиткой назовём плитку, которую уже
положили строители
2 Рассмотрим случай, когда хотим уложить в i–ый столбец
вертикальную плитку размера 2
3 Мы можем это сделать, если у нас нет фиксиованных
плиток в i–ом столбце
4 Если мы это сделать можем, то count[i − 1][1][1] способом
14/19 Всероссийская олимпиада школьников по информатике
«Укладка плитки»
Рассмотрим какие варианты положить плтки вверх и вниз ещё
существуют.
1 В верхную строку можно ничего не класть, либо положить
плитку длиной 1, либо плитку длиной 2
2 Аналогично, в нижную строку можно ничего не класть,
либо положить плитку длиной 1, либо плитку длиной 2
3 Некоторые из этих вариантов невозможны из–за
фиксированных плиток
4 Если вариант возможен, то смотрим, какой профиль
получается в i–ом столбце и из какого в (i − 1)–ом столбце
15/19 Всероссийская олимпиада школьников по информатике
«Укладка плитки»
Код обсчета i–ого столбца на C++
i f ( ! s i n g l e s [ i ] [ 0 ] && ! s i n g l e s [ i ] [ 1 ] )
count [ i ] [ 1 ] [ 1 ] = count [ i − 1 ] [ 1 ] [ 1 ] ;
for ( int topTileLen =0; topTileLen <=2; topTileLen++) {
i f ( topTileLen !=1 && s i n g l e s [ i ] [ 0 ] )
continue ;
for ( int bottomTileLen=0; bottomTileLen<= 2 ;
bottomTileLen++) {
i f ( bottomTileLen!=1 && s i n g l e s [ i ] [ 1 ] )
continue ;
int j1 = ( topTileLen == 0) ? 0 : 1 ;
int k1 = ( bottomTileLen == 0) ? 0 : 1 ;
int j2 = ( topTileLen == 2) ? 0 : 1 ;
int k2 = ( bottomTileLen == 2) ? 0 : 1 ;
count [ i ] [ j1 ] [ k1 ] += count [ i − 1 ] [ j2 ] [ k2 ] ;
count [ i ] [ j1 ] [ k1 ] %= 1000000007;
}
}
16/19 Всероссийская олимпиада школьников по информатике
«Укладка плитки»
Типичные ошибки
Неэффективное решение.
Перебор вариантов укладки плиток
Учёт не всех случаев расположений плиток
Использование модульной арифметики только при выводе
ответа, но не в промежуточных расчетах
17/19 Всероссийская олимпиада школьников по информатике
Вопросы по задаче?
18/19 Всероссийская олимпиада школьников по информатике
Заключение
Спасибо за внимание!
19/19 Всероссийская олимпиада школьников по информатике

More Related Content

What's hot

эскизирование графиков
эскизирование графиковэскизирование графиков
эскизирование графиковvitaminka1
 
Функция y = x^2 и её график
Функция y = x^2 и её графикФункция y = x^2 и её график
Функция y = x^2 и её графикFormula.co.ua
 
05.01.2015. теория график функции у=х 2
05.01.2015. теория   график функции у=х 205.01.2015. теория   график функции у=х 2
05.01.2015. теория график функции у=х 2Лариса Чаленко
 
Интегрированный урок "информатика + математика" в 10 классе "Преобразования г...
Интегрированный урок "информатика + математика" в 10 классе "Преобразования г...Интегрированный урок "информатика + математика" в 10 классе "Преобразования г...
Интегрированный урок "информатика + математика" в 10 классе "Преобразования г...Kirrrr123
 
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...Nikolay Grebenshikov
 
Grafik kvadratichnoj funkcii_neravenstva_s_odnoj_p
Grafik kvadratichnoj funkcii_neravenstva_s_odnoj_pGrafik kvadratichnoj funkcii_neravenstva_s_odnoj_p
Grafik kvadratichnoj funkcii_neravenstva_s_odnoj_pИван Иванов
 
контра по матике
контра по матикеконтра по матике
контра по матикеleshiy_AlisA
 
Kvadratichnaya funkciya ejo_svojstva_i_grafik
Kvadratichnaya funkciya ejo_svojstva_i_grafikKvadratichnaya funkciya ejo_svojstva_i_grafik
Kvadratichnaya funkciya ejo_svojstva_i_grafikIvanchik5
 
Doklad postroeniegraphikov 2
Doklad postroeniegraphikov 2Doklad postroeniegraphikov 2
Doklad postroeniegraphikov 2Kydas
 
Простейшие преобразования графиков функций.
Простейшие преобразования графиков функций.Простейшие преобразования графиков функций.
Простейшие преобразования графиков функций.m-nurken
 
Kvadratnaya funkciya i_ee_grafik
Kvadratnaya funkciya i_ee_grafikKvadratnaya funkciya i_ee_grafik
Kvadratnaya funkciya i_ee_grafikIvanchik5
 
уравнение с двумя переменными презентация
уравнение с двумя переменными презентацияуравнение с двумя переменными презентация
уравнение с двумя переменными презентацияsvetlana797
 
Презентация на тему: Интегрированный урок математика-информатика
Презентация на тему: Интегрированный урок математика-информатикаПрезентация на тему: Интегрированный урок математика-информатика
Презентация на тему: Интегрированный урок математика-информатика2berkas
 
Исследование движения ламинарного потока тонкой пленки вязкой несжимаемой жид...
Исследование движения ламинарного потока тонкой пленки вязкой несжимаемой жид...Исследование движения ламинарного потока тонкой пленки вязкой несжимаемой жид...
Исследование движения ламинарного потока тонкой пленки вязкой несжимаемой жид...Theoretical mechanics department
 
системы счисления
системы счислениясистемы счисления
системы счисленияelen-sh
 
презентация приложение 1
презентация приложение 1презентация приложение 1
презентация приложение 1Irishka Beshteynova
 
Gia 2013 god_modul_algebra_zadacha_7
Gia 2013 god_modul_algebra_zadacha_7Gia 2013 god_modul_algebra_zadacha_7
Gia 2013 god_modul_algebra_zadacha_7Иван Иванов
 

What's hot (20)

эскизирование графиков
эскизирование графиковэскизирование графиков
эскизирование графиков
 
Функция y = x^2 и её график
Функция y = x^2 и её графикФункция y = x^2 и её график
Функция y = x^2 и её график
 
Grafika Qbasic
Grafika QbasicGrafika Qbasic
Grafika Qbasic
 
05.01.2015. теория график функции у=х 2
05.01.2015. теория   график функции у=х 205.01.2015. теория   график функции у=х 2
05.01.2015. теория график функции у=х 2
 
Интегрированный урок "информатика + математика" в 10 классе "Преобразования г...
Интегрированный урок "информатика + математика" в 10 классе "Преобразования г...Интегрированный урок "информатика + математика" в 10 классе "Преобразования г...
Интегрированный урок "информатика + математика" в 10 классе "Преобразования г...
 
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...
 
Grafik kvadratichnoj funkcii_neravenstva_s_odnoj_p
Grafik kvadratichnoj funkcii_neravenstva_s_odnoj_pGrafik kvadratichnoj funkcii_neravenstva_s_odnoj_p
Grafik kvadratichnoj funkcii_neravenstva_s_odnoj_p
 
контра по матике
контра по матикеконтра по матике
контра по матике
 
Kvadratichnaya funkciya ejo_svojstva_i_grafik
Kvadratichnaya funkciya ejo_svojstva_i_grafikKvadratichnaya funkciya ejo_svojstva_i_grafik
Kvadratichnaya funkciya ejo_svojstva_i_grafik
 
Doklad postroeniegraphikov 2
Doklad postroeniegraphikov 2Doklad postroeniegraphikov 2
Doklad postroeniegraphikov 2
 
Простейшие преобразования графиков функций.
Простейшие преобразования графиков функций.Простейшие преобразования графиков функций.
Простейшие преобразования графиков функций.
 
Kvadratnaya funkciya i_ee_grafik
Kvadratnaya funkciya i_ee_grafikKvadratnaya funkciya i_ee_grafik
Kvadratnaya funkciya i_ee_grafik
 
уравнение с двумя переменными презентация
уравнение с двумя переменными презентацияуравнение с двумя переменными презентация
уравнение с двумя переменными презентация
 
Grafiki trigonometricheskih funkcij
Grafiki trigonometricheskih funkcijGrafiki trigonometricheskih funkcij
Grafiki trigonometricheskih funkcij
 
Презентация на тему: Интегрированный урок математика-информатика
Презентация на тему: Интегрированный урок математика-информатикаПрезентация на тему: Интегрированный урок математика-информатика
Презентация на тему: Интегрированный урок математика-информатика
 
Исследование движения ламинарного потока тонкой пленки вязкой несжимаемой жид...
Исследование движения ламинарного потока тонкой пленки вязкой несжимаемой жид...Исследование движения ламинарного потока тонкой пленки вязкой несжимаемой жид...
Исследование движения ламинарного потока тонкой пленки вязкой несжимаемой жид...
 
системы счисления
системы счислениясистемы счисления
системы счисления
 
Линейные многошаговые методы
Линейные многошаговые методыЛинейные многошаговые методы
Линейные многошаговые методы
 
презентация приложение 1
презентация приложение 1презентация приложение 1
презентация приложение 1
 
Gia 2013 god_modul_algebra_zadacha_7
Gia 2013 god_modul_algebra_zadacha_7Gia 2013 god_modul_algebra_zadacha_7
Gia 2013 god_modul_algebra_zadacha_7
 

More from Олег Стрекаловский

Когда код «убивает», или зачем нам тестировать наши продукты
Когда код «убивает», или зачем  нам тестировать наши продуктыКогда код «убивает», или зачем  нам тестировать наши продукты
Когда код «убивает», или зачем нам тестировать наши продуктыОлег Стрекаловский
 
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...Олег Стрекаловский
 
"Тёмная и Светлая сторона убеждения людей"
"Тёмная и Светлая сторона убеждения людей""Тёмная и Светлая сторона убеждения людей"
"Тёмная и Светлая сторона убеждения людей"Олег Стрекаловский
 
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...Олег Стрекаловский
 

More from Олег Стрекаловский (6)

Analysis day2
Analysis day2Analysis day2
Analysis day2
 
Защита моей ВКР.
Защита моей ВКР.Защита моей ВКР.
Защита моей ВКР.
 
Когда код «убивает», или зачем нам тестировать наши продукты
Когда код «убивает», или зачем  нам тестировать наши продуктыКогда код «убивает», или зачем  нам тестировать наши продукты
Когда код «убивает», или зачем нам тестировать наши продукты
 
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
 
"Тёмная и Светлая сторона убеждения людей"
"Тёмная и Светлая сторона убеждения людей""Тёмная и Светлая сторона убеждения людей"
"Тёмная и Светлая сторона убеждения людей"
 
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...Разбор задач областного этапа всероссийской олимпиады школьников по информати...
Разбор задач областного этапа всероссийской олимпиады школьников по информати...
 

Разбор задач областного этапа всероссийской олимпиады школьников по информатике 2015г. II тур. Часть 1

  • 1. Всероссийская олимпиада школьников по информатике Региональный этап, II тур Разбор задач Андрианов И. А. Стрекаловский О. А. Вологодский государственный университет Факультет прикладной математики, компьютерных технологий и физики Вологда 2015 г. 1/19 Всероссийская олимпиада школьников по информатике
  • 2. «Кольцевая линия» Согласно условию 0 ≤ Da, Db ≤ N/2 Обозначим станцию Андрея A, а станцию Бориса B Если для двух выбранных станций A и B существует хотя бы одна пара [Da, Db] такая, что среди станций {A + Da, A − Da, B + Db, B − Db} есть две или более совпадающих, то станции A и B не могут быть выбраны Если станция не определяется однозначно по [Da, Db] ⇒ существует хотя бы две станции, до каждой из которых можно доехать из A за Da перегонов и из B за Db перегонов Очевидно, что A и B не должны располагаться за равное число перегонов по часовой стрелке и против часовой стрелки 2/19 Всероссийская олимпиада школьников по информатике
  • 3. «Кольцевая линия» Рассмотрим случай, когда количество станций N нечетно. Пусть Андрей живёт на любой из N станций Зафиксируем станцию, на которой живёт Андрей. Это можно сделать N способами Борис не может жить только на станции A, т.к. только при 0 перегонов между A и B может быть одинаковое расстояние в обоих направлениях ⇒ Борис может жить на любой из оставшихся N − 1 станций Итого N ∗ (N − 1) пар станций таких, что любая станция определяется уникальной парой расстояний [Da, Db] при фиксированных номерах A и B 3/19 Всероссийская олимпиада школьников по информатике
  • 4. «Кольцевая линия» Рассмотрим случай, когда количество станций N четно. Пусть Андрей живёт на любой из N станций Зафиксируем станцию, на которой живёт Андрей. Это можно сделать N способами Борис не может жить только на станциях A и A + N/2, т.к. только при таком размещении между A и B может быть одинаковое расстояние в обоих направлениях ⇒ Борис может жить на любой из оставшихся N − 2 станций Итого N ∗ (N − 2) пар станций таких, что любая станция определяется уникальной парой расстояний [Da, Db] при фиксированных номерах A и B 4/19 Всероссийская олимпиада школьников по информатике
  • 5. «Кольцевая линия» Типичные ошибки Неэффективное решение. Поиск всех подходящих пар станций через из их перебор 5/19 Всероссийская олимпиада школьников по информатике
  • 6. Вопросы по задаче? 6/19 Всероссийская олимпиада школьников по информатике
  • 7. «Вырубка леса» Основная идея Двоичный поиск по минимальному количеству дней, которое хватит для вырубки всех деревьев при одновременной работе обоих лесорубов. 7/19 Всероссийская олимпиада школьников по информатике
  • 8. «Вырубка леса» Определение границ поиска Минимально может потребоваться один день ⇒ левая граница поиска 0 Максимально может потребоваться 2 ∗ X/(A + B) дней, если бы лесорубы работали бы с минимальным рабочим интервалом в 1 день ⇒ правая граница поиска 2 ∗ X/(A + B) + 1 8/19 Всероссийская олимпиада школьников по информатике
  • 9. «Вырубка леса» Вычисление значения функции в фиксированной точке «Сколько деревьев срубит первый и второй лесоруб за фиксированное количество дней» За N дней первый лесоруб, срубая A деревьев в день, и, отдыхая каждый B–й день, срубает (N − ⌊N/B⌋) ∗ A деревьев За N дней второй лесоруб, срубая C деревьев в день, и, отдыхая каждый D–й день, срубает (N − ⌊N/D⌋) ∗ C деревьев Складываем показатели обоих лесорубов 9/19 Всероссийская олимпиада школьников по информатике
  • 10. «Вырубка леса» Итоговый код двоичного поиска на Java long l e f t = 0; long r i g h t = 2 ∗ X / (A + C) + 1; while ( r i g h t − l e f t > 1) { long days = ( l e f t + r i g h t ) >>> 1; long removedByFirst = removedTrees (A, B, days ) ; long removedBySecond = removedTrees (C, D, days ) ; i f ( removedByFirst + removedBySecond >= X) { r i g h t = days ; } else { l e f t = days ; } } return r i g h t ; «А. C. Станкевич. Лекция 2: Сортировка и поиск».1 1 http://www.youtube.com/watch?v=qkLLcdgJj_o 10/19 Всероссийская олимпиада школьников по информатике
  • 11. «Вырубка леса» Типичные ошибки Неэффективное решение. Линейный поиск дня окончания работ Использование 32–x разрядного типа данных Переполнение 64–х разрядного типа данных при подсчёте числа вырубаемых деревьев при фиксированном количестве дней В случае совпадения дней отдыха при полной вырубке деревьев необходимо брать предыдущий день Ошибки в реализации двоичного поиска (дают TLE/WA): Неправильная оценка границ поиска Неправильное сужение границ поиска Неправильный выбор ответа, когда поиск останавливается 11/19 Всероссийская олимпиада школьников по информатике
  • 12. Вопросы по задаче? 12/19 Всероссийская олимпиада школьников по информатике
  • 13. «Укладка плитки» Основная идея Динамическое программирование по профилю. count[i][j][k] - количество способов заполнить первые i − 1 столбцов плитками при профиле i–ого столбца [j][k]. В профиле [j][k] j = 1, если в верхней строке i–ого столбца ячейка заполнена, k = 1, если в нижней строке i–ого столбца ячейка заполнена. 13/19 Всероссийская олимпиада школьников по информатике
  • 14. «Укладка плитки» 1 Фиксированной плиткой назовём плитку, которую уже положили строители 2 Рассмотрим случай, когда хотим уложить в i–ый столбец вертикальную плитку размера 2 3 Мы можем это сделать, если у нас нет фиксиованных плиток в i–ом столбце 4 Если мы это сделать можем, то count[i − 1][1][1] способом 14/19 Всероссийская олимпиада школьников по информатике
  • 15. «Укладка плитки» Рассмотрим какие варианты положить плтки вверх и вниз ещё существуют. 1 В верхную строку можно ничего не класть, либо положить плитку длиной 1, либо плитку длиной 2 2 Аналогично, в нижную строку можно ничего не класть, либо положить плитку длиной 1, либо плитку длиной 2 3 Некоторые из этих вариантов невозможны из–за фиксированных плиток 4 Если вариант возможен, то смотрим, какой профиль получается в i–ом столбце и из какого в (i − 1)–ом столбце 15/19 Всероссийская олимпиада школьников по информатике
  • 16. «Укладка плитки» Код обсчета i–ого столбца на C++ i f ( ! s i n g l e s [ i ] [ 0 ] && ! s i n g l e s [ i ] [ 1 ] ) count [ i ] [ 1 ] [ 1 ] = count [ i − 1 ] [ 1 ] [ 1 ] ; for ( int topTileLen =0; topTileLen <=2; topTileLen++) { i f ( topTileLen !=1 && s i n g l e s [ i ] [ 0 ] ) continue ; for ( int bottomTileLen=0; bottomTileLen<= 2 ; bottomTileLen++) { i f ( bottomTileLen!=1 && s i n g l e s [ i ] [ 1 ] ) continue ; int j1 = ( topTileLen == 0) ? 0 : 1 ; int k1 = ( bottomTileLen == 0) ? 0 : 1 ; int j2 = ( topTileLen == 2) ? 0 : 1 ; int k2 = ( bottomTileLen == 2) ? 0 : 1 ; count [ i ] [ j1 ] [ k1 ] += count [ i − 1 ] [ j2 ] [ k2 ] ; count [ i ] [ j1 ] [ k1 ] %= 1000000007; } } 16/19 Всероссийская олимпиада школьников по информатике
  • 17. «Укладка плитки» Типичные ошибки Неэффективное решение. Перебор вариантов укладки плиток Учёт не всех случаев расположений плиток Использование модульной арифметики только при выводе ответа, но не в промежуточных расчетах 17/19 Всероссийская олимпиада школьников по информатике
  • 18. Вопросы по задаче? 18/19 Всероссийская олимпиада школьников по информатике
  • 19. Заключение Спасибо за внимание! 19/19 Всероссийская олимпиада школьников по информатике