Привет всем! Может кто-нибудь мне подсказать как реализовать эту задачу. Я нашла решение, но никак не могу ее реализовать(как хранить данную фигуру?). Спасибо за ранее
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 3993 |
2 | jiangly | 3743 |
3 | orzdevinwang | 3707 |
4 | Radewoosh | 3627 |
5 | jqdai0815 | 3620 |
6 | Benq | 3564 |
7 | Kevin114514 | 3443 |
8 | ksun48 | 3434 |
9 | Rewinding | 3397 |
10 | Um_nik | 3396 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
Привет всем! Может кто-нибудь мне подсказать как реализовать эту задачу. Я нашла решение, но никак не могу ее реализовать(как хранить данную фигуру?). Спасибо за ранее
Название |
---|
Обычно в задачах "на соты" (пчелиные) я перерисовываю поле в более привычном виде, и ввожу двумерную систему координат. Нарисуем первую строку поля квадратными клетками со стороной 1, вторая строка будет такая же, но смещена на 0.5 вдоль горизонтальной оси, третья смещена на 1, четвёртая на 1.5.
Такое поле естественным образом можно хранить в двумерном массиве. Одна из трёх осей это горизонтальное направление, движение вправо осуществляется прибавлением к двумерным координатам вектора (0, 1). Вторая ось "северо-запад -> юго-восток" движение на юго-восток осуществляется прибавлением вектора (1, 0). Третья ось "северо-восток -> юго-запад", соответствует направлению (1, -1)
PS: ой, я че-то прогнал, здесь же не соты, но система координат может помочь
Предлагаю делать так. Разбить исходную фигуру на строки, в каждой строке сделать нумерацию по наклонным столбцам. Тогда каждому треугольнику будут соответствовать 3 цифры: номер строки, номер косого столбца и ориентация треугольника (острием вверх или вниз). Чтобы получить такое представление, предлагаю обходить фигуру в указанном в задаче порядке, для каждой строки отмечая номера косых отрезков, по которым мы эту строку пересекали. Затем нормируем все отрезки (т.е. сместим нумерацию так, чтобы строки, в которых мы были, начинались с нулевой, так же как и номера вертикальных отрезков), после чего проходим по каждой строке и добавляем в фигуру все треугольники, лежащие между парами отрезков.
P.s. "заранее" пишется слитно
P.p.s. Неплохо бы добавить в пост ссылку на задачу.
спасибо большое) http://acmp.ru/index.asp?main=task&id_task=571