Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 30.08.2020, 15:57   #111
BDA
Модератор
Заслуженный модератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 5,676
По умолчанию

Код:
n = int(input())
while n != 0:
    bit = 1
    while not (n & bit):
        bit *= 2
    print(bit)
    n = int(input())
PS. Чуть опоздал.

ViktorR, контрпример к вашему решению: количество шаров 6 и 10.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 31.08.2020 в 02:25.
BDA вне форума Ответить с цитированием
Старый 15.09.2020, 20:24   #112
FsGaCh
Пользователь
 
Регистрация: 08.02.2020
Сообщений: 60
По умолчанию

1)Гиперпереход, открытый ещё в начале XXI-го века, и сейчас остаётся основным способом перемещения на расстояния до сотен тысяч парсеков. Но совсем недавно физиками открыто новое явление. Оказывается, длительностью альфа-фазы перехода можно легко управлять. Корабль, находящийся в альфа-фазе перехода, накапливает гравитационный потенциал. Чем больше накопленный гравитационный потенциал корабля, тем меньше энергии потребуется ему на прыжок сквозь пространство. Ваша цель — написать программу, которая позволит кораблю за счёт выбора времени начала альфа-фазы и её длительности накопить максимальный гравитационный потенциал.
В самой грубой модели грави-интенсивность — это последовательность целых чисел pi. Будем считать, что если альфа-фаза началась в момент i и закончилась в момент j, то накопленный в течение альфа-фазы потенциал — это сумма всех чисел, стоящих в последовательности на местах от i до j.
Исходные данные
В первой строке входа записано целое число N — длина последовательности, отвечающей за грави-интенсивность (0 ≤ N ≤ 60000). Далее идут N строк, в каждой записано целое число pi (−30000 ≤ pi ≤ 30000).
Результат
Максимальный гравитационный потенциал, который может накопить корабль в альфа-фазе прыжка. Считается, что потенциал корабля в начальный момент времени равен нулю.

Мой вариант:
Код:
n = int(input())
sum = 0 + n
l = [sum]
for i in range(n):
    sum += int(input())
    l.append(sum)
l.sort()
if l[-1] < 0:
    print(0)
else:
    print(l[-1])
2)Группа людей состоит из N членов. У каждого члена группы есть друзья в этой группе, один или более. Напишите программу, которая разделит группу на две команды. Каждый член каждой команды должен иметь друзей в другой команде.
Исходные данные
Первая строка ввода содержит одно число N (N ≤ 100). Члены группы занумерованы от 1 до N. Вторая, третья, …, (N+1)-я строки содержат список друзей первого, второго, …, N-го членов группы соответственно. Списки друзей заканчиваются нулями. Помните, что отношение дружбы в группе всегда взаимное.
Результат
Первая строка вывода должна содержать количество людей в первой группе или ноль, если невозможно разделить людей на две группы. Если решение существует, выведите список первой группы во второй строке вывода. Числа должны быть разделены одиночными пробелами. Если существует более одного решения, можете вывести любое из них.

Это задание я не смог сделать, оно мне показалось очень сложным.
FsGaCh вне форума Ответить с цитированием
Старый 15.09.2020, 21:48   #113
ViktorR
Участник клуба
 
Регистрация: 23.10.2010
Сообщений: 1,620
По умолчанию

О контрпримере.
Чувствовал, что не всё так просто.
В начале написал такой код для проверки различных сочетаний, но не попал на ваш вариант.
Код:
def Change_Bolls(a, b):
    a, b = (max(a, b), min(a, b))
    if a == b:
        return 1
    count = 0
    while a != b:
        a, b = (max(a, b), min(a, b))
        a, b = a - b, b + b
        count += 1
        print(a, '   ', b, '   ', count)
        if a == b:
            return count + 1
#        elif (a + b) // 2:
#            return None
        

a = 6  # 263
b = 10 # 8153
print(Change_Bolls(a, b))
Мне непонятно условие, по которому надо тормозить, ибо этот код начинает непрерывно перекладывать, если переложить нельзя.
У меня нет критерия для "тормоза". Найденное мной решение "затормозило" мои размышления.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 15.09.2020, 21:56   #114
ViktorR
Участник клуба
 
Регистрация: 23.10.2010
Сообщений: 1,620
По умолчанию

О делении на команды.
Цитата:
Напишите программу, которая разделит группу на две команды. Каждый член каждой команды должен иметь друзей в другой команде.
А число членов в командах может быть разным, или команды должны быть одинаковыми по численности?
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 16.09.2020, 02:59   #115
BDA
Модератор
Заслуженный модератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 5,676
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
не всё так просто
Поэтому не могу придумать решение
Цитата:
Сообщение от ViktorR Посмотреть сообщение
непонятно условие, по которому надо тормозить
При раздумьях использовал два подхода: ограничение на количество перекладываний; сохранение всех предыдущих перекладываний и проверка, что такого разложения шаров еще не было. Правда это не приблизило к получению эффективного решения.
Цитата:
Сообщение от FsGaCh Посмотреть сообщение
Гиперпереход...Мой вариант
Вы таким образом рассмотрели только потенциалы альфа-фаз, которые начинались в момент времени 1, а заканчивались в момент времени J (где J меняет значения от 1 до N). Не считая того, что само число N не нужно прибавлять к сумме. И про ограничение потенциала нулем в условии тоже ничего нет. А нужно рассмотреть альфа-фазы 1 <= I <= J <= N (если N > 0).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 20.09.2020, 19:01   #116
FsGaCh
Пользователь
 
Регистрация: 08.02.2020
Сообщений: 60
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
О делении на команды.

А число членов в командах может быть разным, или команды должны быть одинаковыми по численности?
Да, количество членов может отличатся.
FsGaCh вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
готовлюсь к олимпиаде по информатике salauat Паскаль, Turbo Pascal, PascalABC.NET 25 01.12.2013 20:32
Подготовиться к олимпиаде за лето UaKot Свободное общение 20 10.05.2013 17:53
Подготовка к региональной олимпиаде New man Помощь студентам 20 14.12.2012 20:01
Задачи по олимпиаде Darick Помощь студентам 7 23.12.2011 14:45
Как подготовиться к олимпиаде? Kn793 Помощь студентам 16 26.07.2008 11:22


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840