Bogdan
ну фибоначчи это легко
Гамлет
ну фибоначчи это легко
так по нему поймешь как работает динамическое программирование
Гамлет
https://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D0%BA%D0%B0_%D0%BF%D0%BE_%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D1%8C%D1%8F%D0%BC
Гамлет
потом как разберешь, для этой задачи это прочитай
Гамлет
но лучше сделай перерыв
Гамлет
чтобы лучше понять, а то мозги загружены
Bogdan
блин чёт у меня хрень выходит 3,2 дают 6 вместо 5, а 6,4 32 вместо 39
Bogdan
#include <iostream> const long long mod = 1e9 + 7; long long a, b, dp[2000][2000], temp; int main() { dp[0][1] = 1; std::cin >> a >> b; for (int i = 1; i <=a; ++i) { for (int j = 1; j <=a; ++j) { for (int k = j; k <= a; k += j) { dp[i][k] = (dp[i-1][j] + dp[i][k]) % mod; } } } for (int i = 1; i <= a; ++i) temp += dp[b][i]; std::cout << temp%mod; }
Bogdan
вот так тоже работает но это тоже похоже на то что я в инете видел
Georgy
void add_stars(std::string& word) { std::string stars(word.size(), '*'); std::string res = stars + word + stars; std::cout << res; }
Georgy
ребят, у меня на этот код ругается гитхаб
Georgy
кто-то понимаеи в чем дело?
Georgy
буду очень благодарен(
Bogdan
а нет оно не полностью правильно
Bogdan
блин короче конченное задание которое я так и не понял до конца
Bogdan
пойду лучше спать
Гамлет
Gerod
void add_stars(std::string& word) { std::string stars(word.size(), '*'); std::string res = stars + word + stars; std::cout << res; }
для чего 1 строчка в функции? Ты пытаешься вызвать функцию и одновременно объявить что-то?
Andrew
Кто нибудь имел опыт обновления gradle с версии 1.10 до более поздних(6)?
Dmitriy (Дима)
Ну погнали, велком ту спик инглиш нау подкаст.
Dmitriy (Дима)
Ааааа, блин.... Документы на работе забыл 🤦‍♂️🤦‍♂️🤦‍♂️
Dmitriy (Дима)
Надеюсь гайцов как обычно не будет
Alexander
Скучно...
Сергей
Сергей
Пятница же, вечером веселее будет
Igor
#include <iostream> const long long mod = 1e9 + 7; long long a, b, dp[2000][2000], temp; int main() { dp[0][1] = 1; std::cin >> a >> b; for (int i = 1; i <=a; ++i) { for (int j = 1; j <=a; ++j) { for (int k = j; k <= a; k += j) { dp[i][k] = (dp[i-1][j] + dp[i][k]) % mod; } } } for (int i = 1; i <= a; ++i) temp += dp[b][i]; std::cout << temp%mod; }
Если надумаешь дорешивать пиши) подумай над следующим моиентом. У тебя есть последовательность длинны n-1 заканчивается на x и она удовлетворяет условию. Ты хочешь добавить еще одно число. Какие числа можно добавить
Мак Сим
Чем опасно использование динамический памяти?
Vladislav
Платформа не важна?
Vladislav
Ну, типо курсы или Ютуб и т.п
Gerod
SimpleCode youtube
Vladislav
Тогда можешь посмотреть narod stream, begin end и Хирьянов. Это на Ютубе. Мне заходят
Vladislav
SimpleCode youtube
У него плюсы и решето
Vladislav
+
-
Gerod
а чисто Си, сори.
Vladislav
Еще на степике есть курс вроде, где присутствуют виденобъяснения. По Си
Igor
От яндекса пояса на курсере
Мак Сим
А что будет если вывести нулевой указатель? Что-то мой компилятор вообще ничего не пишет
Nikita
А что будет если вывести нулевой указатель? Что-то мой компилятор вообще ничего не пишет
Погугли куда указывает нулевой указатель и там будет ответ на твой вопрос)
Igor
Я вроде и понимаю, а вроде и нифига не понимаю
Сформуируй четко как продолжить последовательность если не можешь в общем виде сформулируй в частном
Bogdan
Ну по условию надо такое число добавить что бы оно делилось на предыдущее
Bogdan
То есть если последовательность закончилась на 20 допустим то следующее должно быть либо 20, либо 40
Bogdan
Но дальше ступор
Igor
То есть если последовательность закончилась на 20 допустим то следующее должно быть либо 20, либо 40
Значит если у гас было 35 плследовательностей заканчивающихся на 20 то нужно на след шаге добавить 35 к последовательностям заканчивающимся на 20 и 40
Денис
Зачем тебе си?
Денис
Ацтой ( ну зато базу заложат
Igor
Не понял, а как ты это высчитал
Число 35 взято от балды это просто колво посчитанное раньше
Денис
А зачем на первом курсе ООП?
Bogdan
Короче это делается перебором перемещая 1 правильно?
Денис
А при чем тут плюсы? Я к тому, что если человек особо не имеет бэкграунда, не знает про примитивные типы данных, что такое функции и с чем их едят, то рано ему в ООП. И я не конкретно про тебя сейчас, а про усредненного студента. А для старта С сильно проще плюсов, так что подход верный - изучить основы без лишней мишуры. Потом и на плюсы можно пойти со сложными типами данных
Vladislav
Зачем тебе си?
Как это, зачем тебе Си? Интересный вопрос. Двудиапозонный
Bogdan
А динамическое программирование надо учить тому кто родился с мозгом (не мне)
Денис
В общем и усреднённом случае, когда человек не знает, чего хочет - да. Люди после школы/колледжа порой не знают даже примерно, в какой области вообще они хотят работать: пойти в менеджеры, программисты, или быть водителем автобуса. В этом плане начать с Си - разумное решение, чтобы освоить основы. В общем-то я начинал с паскаля, но мне было потом непривычно (первое время) работать с Си-подобным синтаксисом. Главное - освоить основы, а не выучить какой-нибудь нетипизированный условный JS и не знать, как работает память, например.
Vladislav
Что значит "двудиапазонный"?
Ну типо, зачем он тебе в плане куда с ним хочешь пойти. И зачем он тебе в плане нах он тебе нужен. Забей на это сообщение я какую-то херню сказал)
Денис
Мы же говорим про универ. Универ - это не про индивидуальные программы. Поэтому там всё грамотно с точки зрения обучения: всего понемногу и упор на компьютер сайнс, не на хард скилы в конкретных технологиях. То есть, универ даёт базу и развитие вширь (расширяет кругозор), а вот дальше вширь и особенно вглубь (навыки работы с конкретными технологиями) качать надо самостоятельно
Igor
Короче это делается перебором перемещая 1 правильно?
ты можешь считать как вперед так и назад те можно брать с предыдущего шага все кол-во и добавлять их к кратным ячецкам, а можешь брать ячейку и добавлять из всех ее множителей
Igor
Если последовательность длинной 1 в ней всегда 1
Igor
То есть это 2 или 3 уровня циклов получается
один цикл по длинне и потом цикл по яцейкам (последнему числу) и цикл по коэффициентам или множителям да 3 уровня
Bogdan
То есть 1 цикл мы от 1 до конца n роемся
Bogdan
Второй так же? Получается
Igor
ну скорее от двух потому что на 1 шаге все 1ци
Igor
второй идет до к потому что это значения
Bogdan
Количество возможных вариантов?
Igor
А n тогда что стопе
может я попутал
Igor
у тебя два числа ограничения на числа и длинна
Bogdan
Ну это получается двумерный массив
Igor
да
Bogdan
Откуда размерность в примере 3000 на 3000 взяли
Bogdan
у тебя два числа ограничения на числа и длинна
А стоп n это просто максимальное значение?
Igor
А стоп n это просто максимальное значение?
В первой строке записано два целых числа через пробел n, k (1 ≤ n, k ≤ 2000).
Igor
таблица у тебя k x n