Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
[Вернуться к задаче]   1 2
  1  Ковалев Михаил Евгеньевич, 07 июля 2024 г. 5:52:59
     1000000000 29 = 1 весело
  2  Оверин Павел Александрович, 05 февраля 2023 г. 1:02:30
     Это было душещипательно. Совет - не забывайте про переполнение типов
  3  Неизвестный, 28 января 2023 г. 19:09:03
     как решаеться вы можете помочь
  4  Акобир, 08 ноября 2022 г. 19:54:22
     мой код верен, но он работает слишком медленно, поэтому он дает ограничение по времени в 10-й тест. Пожалуйста, помогите мне, я новичок программист #include <bits/stdc++.h> using namespace std; long long int zero(int a) { int cnt=0; while(a>1) { if(a%2==0)cnt++; a/=2; } return cnt; } int main() { int n,k,cnt=0,cntg=0; cin>>n>>k; for(int i=1;i<=n;i++) if(zero( i)==k)cnt++; cout<<cnt; }
  5  Матус Даниил Дмитриевич, 02 ноября 2020 г. 0:54:53
     еееее 3 трая просрал тупо из за того случая когда if(k>=bitsize(n)) а так легонько через перебор и meet in the middle и я бы не назвал это прям дп дп чисто перебор с разбиением битовой длинны на 2 части и все
  6  Я ВОР АУЕ КСТА, 11 апреля 2020 г. 23:16:39
     Уххх, сдал эту крошку! Действительно, если посидеть и подумать, то задача не очень сложная, однако, как уже было сказано ниже, она довольна коварна на "ловушки"
  7  Давид Нигматуллин, 24 апреля 2019 г. 11:00:59
     самое сложное - решить проблему с переполнением, всякими хитрыми штуками, либо юзать питон, остальное - работа для моего сына, он вон уже какой большой, в садик скоро пойдет
  8  Глубокий Станислав Сергеевич, 30 августа 2016 г. 0:22:53
     Чтобы оптимально рассчитать сочетания, используйте формулу:
C (N, K) = C (N - 1, K) + C (N - 1, K - 1).
Для хранения значений массива [30][30] хватит с лихвой.
Не забывайте учесть случай, когда N < K.
  9  Зарічковий Олександр Анатольович, 07 августа 2014 г. 11:42:07
     Вот пару тестов (они мне оч. помогли):
34 4
3

41 0
5

87 2
22

25 1
7

3154 13
0
  10  Глембоцкий Владислав Олегович, 03 июня 2013 г. 16:12:51
     Емммм... А почему комбинаторика? Довольно известное ДП как на меня.
     Задачу можно решать и комбинаторными формулами, но по сути это тоже ДП. Ведь число сочетаний имеет динамическую основу, а задача, в которых требуется посчитать количество вариантов по определению является комбинаторной.
  11  Волынский Игорь Владимирович, 04 марта 2013 г. 8:18:57
     183 5=22
207 3=54
20000 7=3674
1024 10=1
1024 9=1
если кому то пригодится
     Да, верные тесты.
  12  М М М, 24 февраля 2013 г. 17:58:44
     Козлов Валерий Викторович, 10 марта 2010 г. 7:06:41
Зубашев Степан, Ваши тесты с вариантами 1000000000 10 и 500000000 10 неверные. Вот правильные ответы:
1000000000 10 = 48572885
500000000 10 = 30882943
Ты не прав или с другим ответом я прошел, т.е. Зубашев Степан - правильно!
     Да, Ваши варианты правильные.
  13  Шавалиев Рустам, 03 марта 2011 г. 21:01:23
     да как же сосчитать варианты в последнем разряде... =(
  14  Платто Павел Константинович, 04 ноября 2010 г. 17:44:21
     Прекальк на 5 минут и перебор не более 10 в 7 чисел тоже проходит:-)
     Да, зато думать не надо.
  15  Хус, 15 октября 2010 г. 16:01:17
     то есть получаетмя мое решение может не проканать на тимусе?номер задачки этой на тимусе не скажете?просто интересно стало?
     На тимусе ее номер 1057. лет 5 назад я ее, как помнится, решал...
  16  Хус, 14 октября 2010 г. 10:04:40
     пипец зачем тут факториалы?неужели люди решающие задачи с такой сложностью, используют наивную формулу сочетаний?
     Ну сами то сочетания тут использовать не бессмысленно, другое дело, что не стоит их вычислять многократно по формуле. Их лучше либо 1 раз вычислить, либо кешировать, не вычисляя повторно каждый раз одно и то же. На тимусе, кстати, есть усложненный вариант этой задачки.
  17  Маскин М.В., 25 июля 2010 г. 0:24:57
     Соболев Евгений Кстати, пункт 5 из твоего алгоритма обязателен, потому что ты проверяешь строго меньшие числа (у тебя прямо так и написано), а ведь само число может тоже быть как вариант, и когда ты проверяешь что ноликов в числе ровно k, поэтому надо проверять единицу. Хотя думаю ты и сам знаешь судя по количеству решенных задач=), но вдруг кому то кто читает обсуждение все-таки интересно почему надо прибавлять единицу)
  18  Козлов Валерий Викторович, 10 марта 2010 г. 7:06:41
     Зубашев Степан, Ваши тесты с вариантами 1000000000 10 и 500000000 10 неверные. Вот правильные ответы:
1000000000 10 = 48572885
500000000 10 = 30882943
  19  Зубашев Степан, 16 ноября 2009 г. 12:21:12
     Вах вах вот эта задачка =) вроде понятно как решается, а мелочей учесть нужно массу. Интересно как Лунёв Антон, везде решает всё по 200-300 символов на код? сдаётся что там просто чтото вроде case (x) of и вывод ответов ;)
В очередной раз убедился что java это чит, можно сдать просто факториалами, без учёта разного рода мелочей :D

Вот парочка новых тестов если кому надо:
500000000 10 = 21474180
1000000000 10 = 34597290
55 4 = 6
12345685 1 = 253
  20  Cihad OGE, 09 ноября 2009 г. 10:05:49
     Должен ли я рассчитать C (1000000000,500000000)? Требуется ли?
     Нет, что вы! Тем более запись неверная. Обычно в C(k,n) k<=n. Буквально у вас это должно быть равно нулю. Но если их поменять, то получится очень большое число, которое конечно же вычислять немыслимо.
 1 2

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2025, ИНН 246305493507, E-mail: admin@acmp.ru



Видеорегистраторы 3 в 1 Купить - Купить видеорегистратор.