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

Автор Gedawy, история, 20 месяцев назад, По-английски

if you participated in national olympiads or IOI talk about your strategy

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

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

Auto comment: topic has been updated by Gedawy (previous revision, new revision, compare).

»
20 месяцев назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

I participated in Italian Olympiads in Informatics, and this was my (most likely suboptimal) strategy:

  1. Read all the problems first
  2. Think of the solutions for 100 points of the problems in the first 4 hours
  3. Give up in the last hour and try to get small points (do subtasks).

If I had to change something I would start doing subtasks sooner, in the last 2 hours of the competition instead of the last 1 hour.

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

    The subtasks are not easy to get them all in the last hour, I don't think it is an optimal strategy

»
20 месяцев назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
  1. Read all the problems.
  2. think about each problem for a while until i get stuck or find a solution, if i find one i code it and submit.
  3. look for solvable subtasks
  4. repeat 2 and 3 until the there aren't any left. 4.1. repeat again juuust in case
  5. start drinking juice or doodling or play the codeblocks tetris game (plugins -> BYO games) or whatever until i can leave
»
20 месяцев назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

my strategy is to do so poorly that everyone else does worse than me so I come out on top

»
20 месяцев назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится
  1. Read all the problems at the start. Take some time to understand what is required in a problem.

  2. Pick the problem that seems the easiest.

  3. Solve subtasks of that problem. I try to take multiple subtasks at once. It is pretty common that subtask is a subtask of another subtask. (For example, in the first subtask N<=10 and in second one N<=100, if I can come up with a solution for N<=100, that will solve N<=10 too).

  4. Avoid ugly implementations. It is often that first or maybe even 2nd subtask have ugly implementation, that can be avoided by making an observation.

  5. Subtasks are your friends, use them. If you are implementing a subtask worth a lot of points, or even the full solution, there is probably a lot of places for bugs. But, there is probably also a subtask that makes some part of your code much easier to implement. (For example, you need to implement a segment tree with lazy propagation. But there is a subtask that allows you to do operations in O(N) and doesn't require a segment tree, but just a for loop) Such subtasks are your best friends at OIs and I highly recommend implementing them. If they pass, it means that your idea is correct and that other parts of your code are also correct. Also, you will have some points and a code that you can use to debug your actual solution. For me, it is really common to first code my idea with simple for loops before implementing data structure/pointers. The last thing you want is to spend an hour on implementation only to realize that the idea itself is wrong. How to decide if a subtask is 4 or 5 comes with experience.

  6. Now that you did all the subtasks you knew the solution to, look at other subtasks of this problem and subtasks of other problems. If there is one that you know the solution to immediately or think you can figure it out, go for it and repeat step 3.

  7. If there is no such subtask, pick the one which seems easiest, or the problem that you spent least time on. There might be an observation that you are missing.

  8. If you were unable to do 7 due to you solving all subtasks, then... Well, never thought about what to do in that case as I do not expect to ever be on this step.

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

Try to solve subtasks as much as I can. I know I can't solve full problems easily so I try to go for easier subtasks to build better solutions

»
20 месяцев назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Mine is to BFS in the 2-3 hours (solve first subtask of each problem then second one then third one etc).

For the last 2 hours (usually having 2 problems left and eliminated the others either because they are very hard or I scored 80+ in), I choose a single problem to brainstorm on depending on the subtasks I’ve got.