Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Алия99
0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 8
1

Не могу понять смысла задачи

08.01.2018, 16:51. Просмотров 801. Ответов 6
Метки нет (Все метки)

Совсем не поняла задачу, точнее, что от меня хотят объясните хотя бы, что здесь делать надо, уже несколько часов дальше условия дело не идет

(Неубывающие цепочки) Пусть A=(aj), 1<= j<= n - последовательность из n положительных
целых чисел. Ее подпоследовательность am+1, am+2, ... , am+k называется неубывающей цепочкой длины k, если am+1<= am+2<= ... <= am+k и am> am+1, am+k> am+k+1. При этом a1
всегда является началом цепочки, а an - окончанием или началом. Определить функцию CountSubSet(), получающую вектор B=(bj), 1<= j<= n, у которого bj является числом неубывающих цепочек длины j.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2018, 16:51
Ответы с готовыми решениями:

Не могу понять условия задачи на массивы
Доброго времени суток. У меня возникла проблема с написанием лабораторной работы. Дело в том, что я...

Не могу разобраться с циклами (не могу понять как сделать так чтоб цикл считывал каждый элемент, без массива!)
Натурально число а вводится пользователем.Определить количество не нудевых цифр этого числа . Не...

Не могу понять смысла JFrame
Вот такие пироги такой смысл,немогу сделать,подскажите пожалуйста

Не могу понять условие задачи - 2
я решаю очередную задачу и не могу понять условие а переводчик совсем не помогает Описание ...

Не могу понять условие задачи
Прошу прощения за глупый вопрос, уважаемые!:) Дано задание: &quot;Добавить таблицу, в которую можно...

6
spvert
219 / 102 / 34
Регистрация: 25.11.2017
Сообщений: 371
Завершенные тесты: 1
08.01.2018, 16:58 2
Лучший ответ Сообщение было отмечено Алия99 как решение

Решение

Вам нужно взять исходный массив A размера n. Создать пустой массив B.
Далее для всех j удовлетворяющих условию 1 <= j <= n обойти этот массив А и определить есть ли в массиве A неубывающая цепочка длины j. Если есть, то добавить j в массив B.
После обхода всех значений j вы будете иметь массив B, заполненный теми значениями j, для которых нашлись неубывающие цепочки соответствующей длины. Вторым проходом массив преобразовываем массив длин в массив количеств цепочек длиной j.

Я бы реализовывал это создав массив B размером n, заполнил его 0. А далее реализовал линейное сканирование массива А в один проход с определением длин встречающихся цепочек и инкрементом элемента соответствующей длины в массиве B при каждом обрыве.
1
Алия99
0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 8
08.01.2018, 17:42  [ТС] 3
Спасибо за объяснение и ход решения все, теперь поняла
0
tolegg
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 2
08.01.2018, 20:34 4
А можно с ходом решения поподробнее? Особенно непонятно условие в задаче : "При этом a1
всегда является началом цепочки, а an - окончанием или началом." Очень нужно.
Заранее спасибо.
0
spvert
219 / 102 / 34
Регистрация: 25.11.2017
Сообщений: 371
Завершенные тесты: 1
08.01.2018, 20:45 5
В условии важно понимать, что цепочка может быть единичной длины.
Соответственно, для любого a2 элемент a1 либо является сам по себе цепочкой единичной длины (т.е. начало и конец цепочки единичной длины) при a2 < a1, либо a1 является началом цепочки с минимальной длиной 2 если a2 >= a1.
Точно так же и с a(n). Это либо окончание цепочки, либо цепочка единичной длины.
0
tolegg
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 2
08.01.2018, 20:54 6
Есть вариант решения от преподавателя:
Пример: A={10, 3,3,15, 14,21}, n=6. B={1,1,1,0,0,0}.
Вот как может быть на первом месте 1?
Я так понимаю, что am - это всегда а1. Тогда где тут неубывающая подпоследовательность длины 2?
0
spvert
219 / 102 / 34
Регистрация: 25.11.2017
Сообщений: 371
Завершенные тесты: 1
08.01.2018, 21:40 7
Все соответствует.
a1 = 10. a2 = 3. a2 < a1. Значит у нас a1 - последовательность единичной длины.
Переходим к a2.
a2 = 3. a3 = 3. a4 = 15. a5 = 14. Значит a2a3a4 последовательность. Длины 3.
Переходим к а5.
a5 = 14. a6 = 21. Конец. Значит a5a6 последовательность. Длины 2.
Получаем что у нас одна последовательность длины 1, одна длины 2 и одна длины 3.
B = { 1, 1, 1, 0, 0, 0 }

Добавлено через 10 минут
И примерно такой мета-код для получения результата

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int A[] = { 10, 3, 3, 15, 14, 21 };
int B[1000];
int i, c;
int a_prev;
 
for (i = 0; i < 1000; i++)
{ 
  B[i] = 0; 
  if (i >= sizeof(A)/sizeof(int)) 
    B[i] = -1; 
}
 
a_prev = 0;
c = 0;
for (i = 0; i < sizeof(A)/sizeof(int); i++)
{
  if (A[i] >= a_prev)
  {
     a_prev = A[i];
     c++;
  }
  else
  {
     B[c-1]++;
     c = 1;
     a_prev = A[i];
  }
}
if (c != 0) B[c-1]++;
1
08.01.2018, 21:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2018, 21:40

Не могу понять решения задачи
Звучит она так: Составить программу, которая создаёт файл и записывает в него 5 введеных целых...

не могу понять условия задачи
решил помочь другу подготовиться к тестированию и не понял задание,откуда берутся такие варианты...

Не могу понять условие задачи
Всем привет, в общем есть у меня одна задача, читая условия которой, я нифига не понимаю что надо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru