В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
630035
630035
12.06.2020 10:03 •  Информатика

Напишите программу покупателю подсчитать заранее общую
стоимость необходимых материалов (паркет и обои) для ремонта в квартире.
Стоимость материалов по умолчанию за 1 квадратный метр а также
сами значения площади пола и стен в доме пользователь будет вводить вручную.
Пример выполнения программы:
Введите цену за 1 кв.м паркета:
490
Введите цену за 1 кв.м обоев:
199
Какова площадь поверхности пола в доме?
50
Какова площадь поверхности стен в доме?
95
Стоимость паркета для ремонта: 24500
Стоимость обоев для ремонта: 18905
Общая стоимость покупки составит 43405 рублей

Показать ответ
Ответ:
Rozo4ka1mr
Rozo4ka1mr
27.10.2020 19:01
Можно поступить следующим образом: создаем multimap. Читаем слова из словаря, для каждого слова находим все супрефиксы, вставляем их в multimap в качестве ключа, значение можно ставить любое (например, (int) 1). После этого в цикле читаем слова-образцы и выводим значение count от каждого слова-образца. 

Программа будет иметь примерно такую структуру:
multimap<string, ...> subprefixes
input n
n times:
    input s
    for j = 0..size of s:
        if s[..j] is subprefix of s:
            subprefixes.insert(pair<string, ...>(s[..j], ...))
input m
m times:
    input s
    print subprefixes.count(s)

Остался вопрос, как определять, является ли s[..j] супрефиксом.  Конечно, можно это делать наивно: пройти циклом для всех возможных длин подстрок j и проверить, правда ли, что s[0] = s[s.size() - j - 1], s[1] = s[s.size() - j]...

Как можно ускорить всё это?
1) Выберем какое-нибудь достаточно большое (по сравнению с кодами символов) простое число x, например, x = 1009. Вычислим для строки s все хеши по формуле h_n(s)=s_0+s_1x+s_2x^2+\dots+s_{n-1}x^{n-1} для n = 1..len s (это делается за линейное время относительно len s, если предпросчитать все степени x от нулевой до 50)
Теперь если у строки s длины k есть супрефикс длины j, то обязательно h_j(s)x^{k-j}=h_{k}(s)-h_{k-j-1}(s) – проверить это быстрее, чем ходить циклом.
2) Необязательно хранить в multimap-е подстроки, это дорого и по времени и по памяти. Можно хранить хеши.
3) Можно вместо одного multimap-а создать 50 multimap-ов, в каждом хранить только супрефиксы одной длины.

Получаем примерно такое:
pow = new long long[51]
pow[0] = 1
for i = 1..50:
    pow[i] = x * pow[i - 1]
suprefixes = new multimap<long long, ...>[51]
input n
n times:
    input s
    h = hashes(s)
    k = len s
    for j = 1..k:
         if h[j] * pow[k - j] == h[k] - h[k - j - 1]:
              suprefixes[j].insert(pair(h[j], ...))
input m
m times:
    input s
    print puprefixes[len s].count(hash(s))

В принципе, для такого решения multimap не нужен, достаточно иметь map, и хранить для каждого ключа количество вхождений. Это можно делать и для multimap.
0,0(0 оценок)
Ответ:
lakomka2018
lakomka2018
24.09.2022 06:49
Для того, чтобы нумерация строк в таблице выполнялась автоматически, следует выполнить несколько простых действий:
1. Выделяем ячейки, в которых нам необходима нумерация, в блок.

2. Переходим на ленту меню Главная, в область Абзац.
3. Выбираем создание нумерованного списка (1. 2. 3. …) при кнопки Нумерация 

4. Получаем таблицу со столбцом, в котором нумерация строк будет выполняться автоматически при удалении или добавлении строк в таблицу.

Можно сказать, что мы превратили столбец № п/п в обыкновенный нумерованый список, который будет автоматически расширяться или уменьшаться по количеству строк в таблице. При этом нумерация строк будет выполняться автоматически.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота