Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
901
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6089
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4401
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Решение задачи Еще одна задача про палиндромы с Codeforces
Без пояснения   Просмотров: 1735
Вам задан массив a, состоящий из n целых чисел.
Ваша задача — определить, содержит ли a какую-то подпоследовательность длины хотя бы 3, которая является палиндромом.
Напомним, что массив b называется подпоследовательностью массива a, если b может быть получен удалением некоторого (возможно, нулевого) количества элементов из a (не обязательно подряд идущих) без изменения порядка оставшихся элементов. Например, [2], [1,2,1,3] и [2,3] являются подпоследовательностями [1,2,1,3], а [1,1,2] и [4] — нет.
Также напомним, что палиндром — это массив, который читается одинаково как слева направо, так и справа налево. Другими словами, массив a длины n является палиндромом, если ai=an−i−1 для всех i от 1 до n. Например, массивы [1234], [1,2,1], [1,3,2,2,3,1] и [10,100,10] являются палиндромами, а массивы [1,2] и [1,2,3,1] — нет.
Вам необходимо ответить на t независимых наборов тестовых данных.
Ваша задача — определить, содержит ли a какую-то подпоследовательность длины хотя бы 3, которая является палиндромом.
Напомним, что массив b называется подпоследовательностью массива a, если b может быть получен удалением некоторого (возможно, нулевого) количества элементов из a (не обязательно подряд идущих) без изменения порядка оставшихся элементов. Например, [2], [1,2,1,3] и [2,3] являются подпоследовательностями [1,2,1,3], а [1,1,2] и [4] — нет.
Также напомним, что палиндром — это массив, который читается одинаково как слева направо, так и справа налево. Другими словами, массив a длины n является палиндромом, если ai=an−i−1 для всех i от 1 до n. Например, массивы [1234], [1,2,1], [1,3,2,2,3,1] и [10,100,10] являются палиндромами, а массивы [1,2] и [1,2,3,1] — нет.
Вам необходимо ответить на t независимых наборов тестовых данных.
Код
#include using namespace std; int main() { int t, n; cin >> t; for(int i = 0; i < t; ++i){ cin >> n; vector str(n); for(int i = 0; i < n; ++i){ cin >> str[i]; } vector > a; vector temp; for(int i = 0; i < str.size(); ++i){ temp.clear(); vector temp(str.size()); a.push_back(temp); } for(int i = 0; i < str.size(); ++i){ a[i][i] = 1; } for(int i = 0; i < str.size() - 1; ++i){ int t = 0; for(int j = 1 + i; j < str.size(); ++j){ if(str[t] != str[j]){ a[t][j] = max(a[t + 1][j], a[t][j - 1]); } else{ a[t][j] = a[t + 1][j - 1] + 2; } ++t; } } if(a[0][str.size() - 1] > 2) cout << "YES"; else cout << "NO"; cout << endl; } return 0; }
 
 
 
 
 
Автор: Администратор
Автор: Администратор
Комментарии
info@mycod.net  
Карта сайта  
Правообладателям
Заявка на расчет
×
или напишите нам прямо сейчас: