Задать вопрос
  • Как разбить множество на всевозможные два подмножества с равной суммой элементов?

    wataru
    @wataru Куратор тега Алгоритмы
    marshmallow, Alexandroppolus,
    Динамическое программирование позволило бы быстрее подсчитать сколько таких множеств есть или проверить, а есть ли они вообще. Раз в задаче надо их сами вывести, то задача решается только полным перебором. С помощью ДП его можно ускорить, но не во всех случаях, поэтому заморачиваться смысла нет.
  • Почему мой код приводит к ошибке?

    wataru
    @wataru
    И что эта программа, по-вашему, должна делать? Посмотрите на документацию и примеры использования scanf. Ничего странного не видите?
  • Почему base64 увеличивает длину строки?

    wataru
    @wataru
    Alexandroppolus, а если этот нолик и так возможен? Я же не знаю, откуда эта hex строка взялась.
  • Как доказать, что в многоугольнике не может быть угла 0°?

    wataru
    @wataru Куратор тега Математика
    Сумма внешних углов может быть больше 360. У квадрата там 1080

    Вот те углы между векторми сторон, которые в сумме дают 360, вот они у такого угла в 0 градусов будут 180. Еще досаточно остается для второго такого же угла.

    Проблема тут не в углах, ведь вполне можно представить себе 2-угольник из двух совпадающих сторон, а в определении. Просто тупо накладывающиеся друг на друга стороны противоречат определению многоугольника. Потому что это бесполезная конструкция. Внутренности у нее нет, только граница.
  • Как построить блок схему?

    wataru
    @wataru
    soja, ну раз на стурктуру преподаватель не ругался, то вроде правильно. Хотя правила и требования у каждого преподавателя свои. Может вашему надо, чтобы стрелочки везде были. Или цвета надо особые делать у разных типов блоков.

    Еще блок c true вообще лишняя вещь.
  • Как построить блок схему?

    wataru
    @wataru
    lz961, Это типа применение совета "чтобы вам на вопрос ответили, ответьте на него сами неверно и появится куча желающих опровергнуть и поспорить"?
  • Как решить олимпиадную задачу с графами?

    wataru
    @wataru Куратор тега Алгоритмы
    Артём Сединин, @nagayev
    Ну тут не надо dfs вообще. Зачем стек наматывать, если можно просто циклом пройтись, если помнить соседнюю вершину.

    p = trunk_base # вершина из которой растет черенок
    v = <next vertex> # соседняя вершина к p вдоль цикла
    while power[v] != 3:
      for n in G[v]:
        if n != p:
          v = n
          p = v
          break


    Аналогично можно пройтись по всем вершинам в черенке.
  • Как решить олимпиадную задачу с графами?

    wataru
    @wataru Куратор тега Алгоритмы
    Марат Нагаев Дайте уж лучше ссылку на условие. Пока ничего не понятно. Как считаются награды? Собрать все? Или они численные и суммируются? Какие ограничения? Сколько вершин, сколько ребер сколько наград, ребра все одинаковой длины или разной? Есть ли отрицательные ребра в графе? Граф вообще ориентированный или нет? Может он дерево? Что важнее: кратчайший путь из A в конец, или собрать все награды? Ведь ради наград придется делать крюки и удлинять путь.

    Разные ответы на эти вопросы делают задачу принципиально разной. Где-то сработает дейкстра, где-то может сработать динамическое программирование, а где-то только полный перебор или какая-то дичь вроде метода отжига.
  • Как определить количество разных букв алфавита?

    wataru
    @wataru
    Retr0Hacker, поробуйте тогда сдедать сам массив char, а к unsigned кастовать при обращении к индексу с кодом символа.
  • Как специализировать метод родительского класса?

    wataru
    @wataru Куратор тега C++
    Ketchuuuup, не обязательно даже виртуальные методы.

    Просто класс наследник должен переопределять метод. Если при этом хотите его как указатель на родительский класс использовать, то да, придется использовать виртуальные методы.

    И вы вообще уверены, что у вас ваш пример работает. Запускать пробовали?
  • Почему множество из стандартной библиотеке работает некорректно?

    wataru
    @wataru Куратор тега C++
    Немного не по коду. Но disjoint set обычно реализуются не через вектор сетов, а через просто вектор интов. Почитайте вот это.
  • Как удалить элементы векторов по одинаковому индексу С++?

    wataru
    @wataru Куратор тега C++
    Большоооой массив и работа только с одним полем. Получается лучшая докальность данных, лучше с кэшем.
  • Как объединить/увидеть пересечение множеств через цикл?

    wataru
    @wataru
    mboze, Я вам уже ответил - выводите массив A (кроме пересечения) и выводите массив B. Два последовательных, не связанных цикла.

    В первой части - вы же можете выводить пересечение? Вот вам надо поменять условие, чтобы выводились не элементы из пересечения, а элементы из не пересечения.
  • Как объединить/увидеть пересечение множеств через цикл?

    wataru
    @wataru
    mboze, Запустите ваш код на нескольких примерах. Сравните что он выводит, а что он должен выводить? Чего не хватает?
  • В чем преимущества процессов над потоками?

    wataru
    @wataru
    Владимир Коротенко,

    > форк - форк процесса, имеет его память и дескрипторы, сильно экономит память, есть еще префорк когда создается сильно до и запускается только в момент необходимости

    Это все-таки отдельный процесс со своей памятью и дискрипторами. Хоть он и шарит память с основным, но все эти страницы будут copy-on-write.

    Да, тут отличие от всяких CreateProcess в винде в том, что состояние запущенного процесса в момент форка такое же, как у родительского - вроде те же значения переменных, те же дискрипторы будут скопированы. Но оно все не связанно. Один из процессов может закрыть дескриптор - у остальнрых они останутся открыты. Изменения переменных не видны в других процессах.
  • Гипотеза Била - можете объяснить, почему парень не прав?

    wataru
    @wataru Куратор тега Математика
    UnrecognizedGenius
    Общий делитель 2 и 4, как математик любитель, заявляю 4


    Что? Общий делитель тут 2. Ибо 2 на 4 не делится.
  • Почему вызывается приватный конструктор копирования?

    wataru
    @wataru Куратор тега C++
    Прейс Дмитрий, Еще, если вы хотите запретить копирование класса Item, то обычно конструктор и оператор копирования удаляют (= delete;) вместо деланья их приватными. Приватным делают просто конструктор, когда надо запретить кому-то создавать объект самостоятельно вне специальной фабрики.
  • Как в языке си вернуть пустой массив?

    wataru
    @wataru
    Для начала определитесь, что есть массив в языке си. Каков тип возвращаемого функцией значения?
  • Почему вызывается приватный конструктор копирования?

    wataru
    @wataru Куратор тега C++
    Прейс Дмитрий,

    То есть ошибка вылезает из за того, что компилятор заносит в таблицу виртуальных методов реализации обоих методов push и видит, что lib::LinkedList::push(const T&) пытается получить доступ к приватному конструктору копирования?


    Почти. Из-за особой магии от virtual при конструкторе копирования, компилятор решает, что функция push(const T&), таки должна быть сгенерирована. И тут они видит в ней ошибку.

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


    Ну и что, что вы не требуете выполнения? Вот вы сделайте ваш класс вообще не шаблоном. Или напишите где-то в коде какой-то обычной неиспользуемой функции asdfhjasdfghjsdfvvhj;. Компилятор вам ругнется на ошибку в фукнкции. Даже если она не вызывается. Так что тут вам шаблон наоборот иногда даже поблажку дает. Что вас и запутало.

    это же вообще обьявление функции, это не инстанцирует объект класса


    Да, в C++ вызов конструктора иногда выглядит как объявление функции. Но по контексту понятно. Вы же не можете объявить функцию в теле функции? Это, все-таки создание list конструктором по умолчанию. Добавтье cout << "aaa"; в конструктор и убедитесь, что оно вызывается.

    Можно как то обойти эту проблему?


    Можно. Удалите ваш плохой метод push (без перемещения). Он или не будет вообще никак использоватся или вызовет ошибку компиляции. Или меняйте интерфейс так, чтобы push всегда принимал указатель. Ну вы никак не добавите в ваш список неперемещаемый объект, переданный по ссылке (без адских костылей и дикого риска выстрелить себе в ногу).
  • Почему вызывается приватный конструктор копирования?

    wataru
    @wataru Куратор тега C++
    Прейс Дмитрий, Ваша ошибка в том, что метод push без перемещения с неперемещаемым Item невозможен. Как только этот метод где-то как-то всплывает в коде - компилятор вам об этом сообщает. Пока этот метод не трогается, то все работает потому что методы в шаблонах генерируются по мере использования. Так что там может даже ошибка компиляции быть и все соберется, если сам метод никак не использовать.

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