Гистограммой является массив, каждый элемент которого указывает высоту столбика на соответствующей позиции. Две гистограммы считаются совпадающими, если при совмещении одной гистограммы с другой гистограммой, повёрнутой на угол 180°, получается ровный
- Программирование
Условие:
Условие задачи
Гистограммой является массив, каждый элемент которого указывает высоту столбика на соответствующей позиции.
Две гистограммы считаются совпадающими, если при совмещении одной гистограммы с другой гистограммой, повёрнутой на угол 180°, получается ровный прямоугольник без наложений и пропусков. Более формально: две гистограммы
a
a
и
b
b
называются совпадающими, если
a
i
+
b
m
−
i
+
1
=
a
j
+
b
m
−
j
+
1
a
i
+b
m−i+1
=a
j
+b
m−j+1
для любой пары
(
i
,
j
)
(i,j)
(
1
≤
i
,
j
≤
m
)
(1≤i,j≤m)
.
Даны
N
N
гистограмм длины
M
M
, необходимо найти количество пар совпадающих гистрограмм.
Входные данные
Каждый тест состоит из нескольких наборов входных данных.
Первая строка содержит целое число
t
t
(
1
≤
t
≤
1
0
5
)
(1≤t≤10
5
)
— количество наборов входных данных.
В первой строке каждого набора входных данных даны числа
N
N
и
M
M
.
N
N
обозначает количество различных гистограмм,
M
M
— их длину
(
2
≤
N
,
M
≤
1
0
5
)
.
(2≤N,M≤10
5
).
Гарантируется, что сумма
N
⋅
M
N⋅M
по всем тестам не больше
1
0
5
10
5
.
Каждая из следующих
N
N
строк содержит
M
M
целых неотрицательных чисел. Все числа не превосходят
1
0
9
10
9
.
Группы
тестов
Группытестов
doschechki-groups
Выходные данные
Для каждого набора входных данных выведите число — количество пар совпадающих гистограмм.
Иллюстрация
Иллюстрация
На картинке пример пар совпадающих и несовпадающих гистограмм:
histo-picture
Пример теста 1
Входные данные
3
3 3
1 2 4
1 3 4
1 4 3
3 4
1 3 2 4
1 3 2 4
2 4 3 5
2 2
1 2
2 1
Выходные данные
1
3
0
реши задачу на golang
Решение:
Для решения данной задачи на языке Go, мы будем использовать подход, основанный на хэшировании. Мы будем хранить гистограммы в виде строк, которые будут представлять их отраженные версии. Затем мы будем подсчитывать количество совпадений, используя хэш-таблицу. Вот шаги, которые мы будем выполнять: 1. Прочитать количество тестов. 2. Для каждого теста: - Прочитать количество гистограмм и их длину. - Создать хэш-таблицу для хранения гистограмм. - Для каждой гистограммы: - Создать строку, представляющую гистограмму и её отражение. - Увеличить счетчик для каждой уникальной стр...
Похожие задачи
Не нашел нужную задачу?
Воспользуйся поиском
AI помощники
Выбери предмет
- Правоохранительные органы
- Пожарная безопасность
- Парикмахерское искусство
- Природообустройство и водопользование
- Почвоведение
- Приборостроение и оптотехника
- Промышленный маркетинг и менеджмент
- Производственный маркетинг и менеджмент
- Процессы и аппараты
- Программирование
- Право и юриспруденция
- Психология
- Политология
- Педагогика
- Трудовое право
- Теория государства и права (ТГП)
- Таможенное право
- Теория игр
- Текстильная промышленность
- Теория вероятностей
- Теоретическая механика
- Теория управления
- Технология продовольственных продуктов и товаров
- Технологические машины и оборудование
- Теплоэнергетика и теплотехника
- Туризм
- Товароведение
- Таможенное дело
- Торговое дело
- Теория машин и механизмов
- Транспортные средства