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

Автор cgy4ever, история, 8 лет назад, По-английски

Hi there,

Topcoder SRM 698 will start in about 9 hours (Sept 17, 12:00 noon EDT).

This round is Sponsored by Google, find more details here.

Thanks for participating! The Div1-Medium and Hard were prepared to be used in TCO Round 3B, but shangjingbo told me they are too easy (he got the idea for each of them in 10 minutes). It turns out they are not that easy. :P

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

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

Let me be the first one. How to solve Div1 Hard?

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

    spoiler

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

      let's spoil it :)

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

      I still don't follow. Can you explain further?

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

        I think there is one detail not obvious at first: 2-SAT solution may choose, for example, pieces like this:

        ##.   .##   ...   ...   ###
        ... + ... + #.. + ..# = #.#
        ...   ...   #..   ..#   #.#
        

        which is not a good shape, so one might think this solution is not really correct, but actually it doesn't matter because in every such case the resulting "bad" shape contains a good sub-shape, so if there is a solution with some "bad" shapes, then there is also a solution where all shapes are good.

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

Anyone please explain the approach of Div2 hard...

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

    We can solve the problem for each bit, and then sum them up. For each bit, it becomes: compute the number of subtrees such that at least one node has weight 1. It equals to: (number of all subtree) — (number of subtree that all nodes has weight 0). Both can be solved by tree DP.

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

Div2 Hard ?

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

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

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

Lol, because someone got an idea in 10 minutes for that problem you put significantly easier problem on TCO xD. And hard looks pretty unsolvable during that time (just first impression). It has some flow flavor in its looks, but dunno.

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

    Yes, this Hard is not ideal: if you don't have a template for 2-SAT, then it will be too hard to code it in time. And it is vulnerable to bruteforce search.

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

Hints for Div1 500?

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

    Good pairs = all pairs — bad pairs.

    Pair is bad if at least one of sets has <3 points or if they form two legit polygons that have no intersection.

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

      Figured out this much. Can't figure out how to find the total number of possible non-intersecting pairs of polygons. Thanks for the help though!

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

        So now think how we can count legit nonintersecting polygonal. They can be separated by a line. It would be good to make that line unique.

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

Nice Contest :)

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

SRM 698 Div 1 250 — link

SRM 497 Div 2 1000 — link

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

I haven't been able to participate in recent matches since hackerrank stopped showing SRM in it's calendar. What are other alternatives? How do you remember contests?

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

I cannot find the editorial.
How to solve the problem RepeatString?

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

    Break the string in two parts(there n-1 ways to it) and find it's LCS. Answer will be 2 * maximum of all those LCS.

    Complexity -> O(n^3)

    Code

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

      Is it possible to use here Minimum Edit Distance algorithm?
      The description of the algorithm looks suspiciously similar to the problem description. At least the algorithm supports the same kind of operations: insertion, deletion and substitution.