![]() |
|
Другие темы раздела | |
C++ Ошибка в программе
https://www.cyberforum.ru/ cpp-beginners/ thread1119771.html Ребят привет, помогите в программе найти ошибку, вообще не понимаю #include <cstdlib> #include <iostream> #include <clocale> using namespace std; class CParal |
C++ Двумерные массивы на C++ (Консольное приложение) 1. Дан двумерный массив, заполненный случайными числами (размер массива может быть разным). а) Вывести на экран элемент, расположенный в правом верхнем углу массива. б) Вывести на экран элемент,... |
C++ Кратна ли трем сумма цифр двухзначного числа Написать программу, которая определяет кратна ли трем сумма цифр двухзначного числа. #include<stdio.h> #include<conio.h> #include<math.h> main() { int N,S; printf("Введите число... https://www.cyberforum.ru/ cpp-beginners/ thread1119752.html |
C++ Не пойму что делает : в конструкторе
https://www.cyberforum.ru/ cpp-beginners/ thread1119739.html не пойму что делает : в конструкторе.заранее спасибо за ответ. Year(int x):y(x){ if (x<min || x>max) throw Invalid();} Year(int x):y(x){ -не ясен данный фрагмент |
C++ Синглтон для лог файла! #include <iostream> #include <cmath> #include <limits> #include <stdio.h> #include <math.h> #include <fstream> using namespace std; class pole { public: |
C++ Составить блок-схему по заданному коду Составить блок-схему по заданному коду: #include <iostream> using namespace std; int main() { setlocale (LC_ALL,"Russian"); int month; month=1; do https://www.cyberforum.ru/ cpp-beginners/ thread1119728.html |
C++ Составить блок-схему по заданному коду Составить блок-схему по заданному коду: #include <iostream> #include <math.h> using namespace std; void main() { setlocale(LC_ALL,"Russian"); double x,y,r; cout<<"Введите x="; https://www.cyberforum.ru/ cpp-beginners/ thread1119726.html |
C++ Какую бесплатную среду (IDE) разработки для С++ 2013/2014 года выпуска лучше скачать? Существуют множество как и бесплатные, так и платные среды разработок для С++ , но что делать, если вы можете скачать только один раз и то нужный (правильный) продукт, так как трафик интернета не... |
C++ Явная специализация шаблона
https://www.cyberforum.ru/ cpp-beginners/ thread1119699.html Здравствуйте. Не совсем разобрася с сабжем. Например, если есть кусочек кода: template <typename T> void func(T &blue, T &red); struct X1 { int a; double b; };, то для явной специализации для... |
C++ Класс одиночка!
https://www.cyberforum.ru/ cpp-beginners/ thread1119685.html #include <iostream> #include <cmath> #include <limits> #include <stdio.h> #include <math.h> #include <fstream> using namespace std; template <class T> class Singleton { |
C++ Двумерный целочисленный массив A(m;n) задается с экрана, либо генерируется в пределах от -100 до 100. Найти числа b1,b1,.bm, равные наименьшим значен Двумерный целочисленный массив A(m;n) задается с экрана, либо генерируется в пределах от -100 до 100. Найти числа b1,b1,..bm, равные наименьшим значением строк. |
C++ Использование библиотеки STL , контейнер string. Дан массив слов.Надо удалить все цифры из слов #include "StdAfx.h" #include <string> #include <iostream> #include <algorithm> using namespace std; int main() { string str = "En457789iki bin3241iki e9087l46i va5ren234iki"; string::... https://www.cyberforum.ru/ cpp-beginners/ thread1119678.html |
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 5
|
|
16.03.2014, 08:05 [ТС] | 0 |
Задана строка, символы которой могут повторяться. Нужно удалить все символы строки с помощью наименьшего количества вычеркиваний - C++ - Ответ 590574716.03.2014, 08:05. Показов 2664. Ответов 2
Метки (Все метки)
Ответ Пример. Вход: 1343223; выход: 4.
Анализ задачи. В строке 1343223 из примера можно вычеркнуть 22 (получится 13433), затем 1 и 4, а затем сразу три символа 3, т.е. всего четыре вычеркивания. Предварительно "сожмем" слово, заменив каждую последовательность одинако- вых символов, идущих подряд, одним таким символом, например, из 111223114 получим 12314. Очевидно, что ответ от этого не изменится, как и время работы в худшем случае. Однако в среднем выигрыш будет существенным за счет уменьшения числа подзадач (сложность "сжатия" линейна и не влияет на общую оценку — см задачу 5.4). Кроме того, "сжатие" гарантирует, что все соседние символы различны. Пусть а [1] …а [т] — строка, т — ее длина. Часть строки a [i] …а [ j ], состоя- щую из всех символов с i’-го по j-Vi включительно, будем называть i…/-подстрокой Серия подзадач очевидна: За какое минимально возможное количество вычеркивании можно удалить u.j-подстроку? Нужная задача будет одной из задач серии, а именно задачей размером (1, т). Тривиальные подзадачи, решение которых очевидно — это подзадачи вида (i, i (одиночный символ удаляется за один ход) и вида (i, i+1) (двухсимвольные подстро- ки, состоящие из разных символов, удаляются за два хода). Обозначим минимальное количество действий для удаления {..у-подстроки через Тц. Оптимальным решением нетривиальной (1,у)-подзадйчи может быть такое: перебрать все к, удовлетворяющие i подстроку. Таким образом, при a\i] *а [ j ] окончательный оптимум (/,./)-подзадачи достаточ- но искать как ТҐ= Kv (согласно (13.14)), а при a [i] = а [j] следует рассмотреть Ку и ЛГ* и выбрать из них меньшее. Но и этого мало. Если одинаковые крайние символы «’…/-подстроки повторяются внутри нее, то может оказаться, что выгоднее всего сначала удалить все подстроки, разделяющие эти вхождения, а затем зачеркнуть все эти символы за один ход (например, слово 1213141 лучше всего обработать, вычеркнув 2, 3, 4, а затем все единицы за один ход). Однако "может оказаться" не означает "непременно окажется". Рассмотрим слово 1231413215161. Любое его оптимальное решение (например, сначала вычеркнуть 4, затем новообразуемые подстроки 11, 33, 22, затем 5, б, и, наконец, оставшиеся 1111) требует удалять вторую и третью справа единицы (в позициях 9 и 11) вместе с крайними (в позициях 1 и 13), а единицы в позициях 4 и 6 должны быть вычеркнуты раньше. Таким образом, на последний ход нужно оставить много единиц, но не все. Может показаться, что для реализации этой идеи нужен полный перебор под- множеств вхождений символов, одинаковых с a [i] и а [ j ]. Однако это не так бла- годаря следующей идее. Пусть для некоторой /../’-подстроки крайние символы a[i], a[j] совпадают с некоторым внутренним а [к]. Тогда удаление сначала i+l..fc-1-подстроки, затем k+\..j-\ – подстроки, затем трех одинаковых символов a[i]a[k]a[j] можно услов- но свести к тому, что удаляется /..^-подстрока (но символ а [к] при этом загадочным образом остается), а затем Ј. ../-подстрока. Из суммы количеств ходов по удалению этих подстрок вычитается 1, поскольку при вычислении Т^+Т^ вычеркивание симво- ла а [к] считается дважды: Очевидно, что формула (13.16) позволяет собирать под одно вычеркивание много одинаковых символов (если оптимальное решение хотя бы одной из (/,&)- и (k,j)- подзадач получено по этой же формуле), не требуя, чтобы все одинаковые символы вычеркивались обязательно за один раз. Как и в задачах об умножении матриц и о максимальном значении выражения, формулы (13.14)—(13.17) следует реализовать либо с помощью рекурсии с запомина- нием, либо итеративно заполнить таблицу для 7^, двигаясь от главной диагонали по линиям, параллельным ей, пока не придем в угловой элемент Т1т. Вспомогательные величины Ку, K’tj и используются только для вычисления Ту (при тех же i иу) и в дальнейшем их помнить не обязательно. Однако, реализуя алгоритм с помощью рекурсии с запоминанием, эти вспомогательные значения все- таки придется хранить (в массивах или в программном стеке). Так что преимущества итеративного заполнения таблицы проявляются в данной задаче несколько ярче чем в предыдущих. Вернуться к обсуждению: Задана строка, символы которой могут повторяться. Нужно удалить все символы строки с помощью наименьшего количества вычеркиваний C++
0
|
|
16.03.2014, 08:05 | |
Готовые ответы и решения:
2
символы '#$D#$A' - в строке. Отображаются как перенос строки. Нужно убрать. Не дают перейти по ссылке в которой есть эти символы Вводится строка, в ней нужно удалить все символы кроме цифр
|
16.03.2014, 08:05 | |
Помогаю со студенческими работами здесь
0
Удалить символы строки, которые не могут присутствовать в целом числе Задана строка, содержащая символы и числа. Найти произведение всех чисел заданной строки. Строка: Если все символы A входят в B, то упорядочить символы B в порядке, обратном алфавитному... Строка: Из исходной строки создать новую, у которой символы расположены в обратном порядке |