Блог пользователя _Questions_

Автор _Questions_, история, 8 лет назад, По-русски

Недавно решая одну задачу связанную с деревом отрезков я озадачился так как я не смог сделать прибавление на отрезке в дереве на сумму. Возможно ли прибавлять на отрезке если да то как если нельзя то где можно его использовать.

  • Проголосовать: нравится
  • -7
  • Проголосовать: не нравится

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Можно делать прибавление на отрезке. Вот тут про это написано.

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Я читал эту статью но показанный там код не работает в дереве на сумму.

    • »
      »
      »
      8 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

      там нет кода для прибавления. Там есть код для присвоения на отрезке. Чтобы получился код для прибавления его нужно чуть-чуть модифицировать.

      вот так обычно пишу я

      • »
        »
        »
        »
        8 лет назад, # ^ |
          Проголосовать: нравится -12 Проголосовать: не нравится

        Я взял за основу код на обновление на отрезке но вместо присвоение написал add[v] += (tr - tl + 1) * val. Это правильно ?

        • »
          »
          »
          »
          »
          8 лет назад, # ^ |
            Проголосовать: нравится +3 Проголосовать: не нравится

          Кажется, ты думаешь что он не правильно написал потому, что кроме прибавления на отрезке, тебе нужно знать сумму на отрезке. Вот мой код, я его не отправлял на проверку, но вроде все правильно написано.

      • »
        »
        »
        »
        8 лет назад, # ^ |
          Проголосовать: нравится -13 Проголосовать: не нравится

        По моему мнению вы не правильно написали.

        • »
          »
          »
          »
          »
          8 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится +32 Проголосовать: не нравится
          1. Его код работает, твой нет.
          2. У него 2100.
          3. Это прибавление в дереве отрезков, а у него 2100(наверное, он умеет прибавлять на отрезке, как думаешь?). Вывод: неправильно написал ты, пойми почему.
»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

read this or this

»
8 лет назад, # |
  Проголосовать: нравится -53 Проголосовать: не нравится

лучше дирамидой, а не этим анимешным способом

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится -23 Проголосовать: не нравится

    не лучше

    • »
      »
      »
      8 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится -30 Проголосовать: не нравится

      Отлично, господа заминусившие, кто-нибудь расскажет мне про преимущества "не анимешного" способа? Вперед, давайте! конченые

      • »
        »
        »
        »
        8 лет назад, # ^ |
          Проголосовать: нравится +9 Проголосовать: не нравится

        Как ты знаешь, немалая часть кодфорсес общается на русском, а значит, их любимый язык программирования — кумир. Очевидный плюс дерамиды в этом плане, это простота ее написания на вышеупомянутом языке : реализация. И да, будь уже в конец толерантен к анимешникам( чем они тебе не угодили? ).

        • »
          »
          »
          »
          »
          8 лет назад, # ^ |
            Проголосовать: нравится -9 Проголосовать: не нравится

          Так я ничего и не имею против анимешников, serkov ругал "анимешный способ"