2016-02-29 4 views
-2

В одном конкурсе по программированию эта проблема была дана.Каков хороший подход к решению этой задачи программирования?

База данных содержит таблицу с двумя столбцами.
Первый является идентификатор пользователя,
Второго может быть

  • 0 (если он не имеет какой-либо суб-ординат),
  • идентификатор (если он только один суб-ординат),
  • сумма идентификаторов (если у него две подписи)

// Макс два помощника.

Нам нужно найти голову банды

Пример ввода:

Первая строка указывает на «п» [число записей, 3<n<100]
следующий четыре фактические записи

4 
1 7 
2 1 
3 0 
4 0 

Здесь 3,4 имеет 0 в своих вторых столбцах, что означает, что у них нет никаких подстановок.

1 имеет 7 во второй колонке, которая не является идентификатором любого элемента, так что это может быть сумма двух идентификаторов [3,4 так, являются суб-ординаты 7]

2 имеет 1 в качестве посылки

так что 2 является главой банды.

Выход:

2 

Я не в состоянии решить эту проблему.
Может ли кто-нибудь мне помочь?

Если это неправильное место, чтобы задать этот вопрос, значит
Может предложить мне несколько сайтов, на которых я могу размещать такие вопросы?

+3

Вы вообще что-то пробовали? – DaveRlz

+1

Что определяет «глава банды» - это какая-то, которая никому не помогает? Есть ли только один такой человек? Есть ли предел тому, насколько большой может быть база данных или ограничение на число? Я предполагаю, что вам предоставлена ​​база данных, а не попытка создать базу данных, которая позволила бы решить проблему. – Jeff

+1

Ваше описание ввода кажется неполным, учитывая ввод образца. Какова первая строка ввода? – pjs

ответ

3

Я дам вам подсказку (что почти раствор) здесь:

Что такое суммы все числа во втором столбце?


Ответ (спойлер оповещения):

Идентификатор главы банды (если существует): 1 + 2 + ... + n - (the sum of all the numbers in the second column). Обратите внимание, что указанное число фактически дает сумму id всех членов верхнего уровня (т. Е. Членов, которые не имеют каких-либо подпорок). Таким образом, правильность основывается на предположении, что существует одна уникальная глава банды.

+0

Не ответ - должен быть просто комментарий. –

+0

@PaulR Пожалуйста, подумайте об этом еще раз. Это ответ! – WhatsUp

+0

Не совсем - это подсказка, которая полезна, но на самом деле она не дает ответа как такового. –

Смежные вопросы