М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
ress1133
ress1133
26.08.2022 11:07 •  Информатика

Ограничение времени 1 секунда Ограничение памяти 64Mb

Ввод стандартный ввод или input.txt

Вывод стандартный вывод или output.txt

Современные генные инженеры создали 26 различных оснований, из которых они собираются конструировать гены. Они обозначили эти основания латинскими буквами от A до Z. Таким образом, структуру любого нового гена можно записать строкой из латинских букв.

Свойства генов в значительной степени определяются парами соседних оснований, например, в геноме «AССABAC» имеются такие пары оснований: «АС», «СС», «СА», «АВ», «ВА», «АС».

Показателем схожести двух геномов ученые считают количество пар соседствующих оснований одного генома, которые имеются в другом геноме.

Вам заданы две последовательности оснований (т.е. два генома), нужно определить показатель схожести одного генома другому.

Формат ввода

Строка 1: представление структуры первого генома в виде непустой строки из заглавных латинских букв A-Z.

Строка 2: представление структуры второго генома в аналогичном виде.

Длины обеих строк не превосходят 105.

Формат вывода

Программа должна вывести одно целое число –- показатель схожести, вычисленный для геномов, заданных в первой и второй строке.

Пример

Ввод Вывод

ABBACAB

BCABB

4

Примечания

Во втором геноме имеются следующие пары оснований первого генома: AB, BB, CA, AB. Так как пара AB в первом геноме встречается два раза, поэтому она подсчитана в ответе два раза, поэтому она подсчитана в ответе два раза.

👇
Открыть все ответы
Ответ:
rast052
rast052
26.08.2022
Программа на python 3, перебирающая все возможные последовательности определённой длины:
def shortest_chains(n):
  def next_chains(chain):
    new_elems = set()
    for i in range(len(chain)):
      for j in range(i, len(chain)):
        new_elem = chain[i] + chain[j]
        if new_elem > chain[-1] and new_elem not in new_elems:
          new_elems.add(new_elem)
          yield chain + [new_elem]
  
  current_stage = None
  next_stage = [[1]]
  answer = []
  while len(answer) == 0:
    current_stage = next_stage
    next_stage = []
    for chain in current_stage:
      next_stage.extend(next_chains(chain))
    answer = [chain[1:] for chain in next_stage if chain[-1] == n]
  return answer
    
def print_solution(n):
  answer = shortest_chains(n)
  print("Для {} есть {} решений(-я, -е):".format(n, len(answer)))
  for i in range(len(answer)):
    print("{}. {}".format(i + 1, " ".join(map(str, answer[i]
  print()

Запустив, можно получить все 5 возможных решений для числа 7, по 4 решения для 15 и 23 и 87 решений для 63.
4,7(60 оценок)
Ответ:
Аліномаг
Аліномаг
26.08.2022
P.S.

Тернарная операция в C++ - это выражение вида (b ? x : y) (где b - логическое выражение, а x и y - одного типа). Она вернёт x, если выражение b истинно, и y, если b ложно.


Решение

В приложении расписаны координаты некоторых клеток, а также помечены точками те, которые по цвету отличаются от не помеченных. Если поискать, что у них общего, можно обнаружить, что у "невыколотых" клеток сумма координат по горизонтали и вертикали - чётная. Это "свойство" и используем для определения цвета клетки.


Код

#include <bits/stdc++.h>

using namespace std;

int main() {

 int x1, y1, x2, y2;

 cin >> x1 >> y1 >> x2 >> y2;

 cout << ((x1 + y1) % 2 == (x2 + y2) % 2 ? "YES" : "NO") << endl;

 return 0;

}



На с++ с тернарной операцией поле шахматной доски определяется парой натуральных чисел, каждое из ко
4,6(79 оценок)
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ