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

Автор samsidx, 10 лет назад, По-английски

What is a constructive algorithm problem??

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

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

It's an algorithm which builds something. A graph, an array, a matrix etc. It's what test generators use to build test cases.

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

It's just like some proofs in math: there are non-constructive ones which show that some property holds (or some object exists) without constructing the actual object, satisfying this property. Usually such proofs are proofs by contradiction or ones using the axiom of choice (I can't remember any usage of the axiom of choice in discrete math proofs though).

The same applies to computational problems: if you are asked to return an object, satisfying some property, you might be able to prove such an object exists. By proving I mean you could in principle be able to check this somehow in runtime (probably, in polynomial time), however, you might be unable to guess a clever way of getting the object other than brute force.

»
4 года назад, # |
Rev. 3   Проголосовать: нравится -14 Проголосовать: не нравится

In case some of you are still confused, I am adding what helped me understand these, in addition to the other answers. Basically, it is related to problems which is asking you to find any answer(of possibly many) that satisfies the constraints of the question. A nice example is a recent question https://codeforces.com/contest/1348/problem/D. Also you should go through this training camp pdf for more examples https://assets.hkoi.org/training2019/cast.pdf and how to approach problems of these types.

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

Please Someone Explain it in a simple way.Just an overview with an example would be helpful.

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

so I can consider it as ad-hoc ?

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

    Not really.

    Constructive = the problem asks for an object satisfying some conditions and you need to provide an example of said object.

    Ad-hoc = the solution does not only require algorithms/data structures, but also a non-trivial idea.

    The former often implies the latter, but not always.