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

Автор Endagorion, история, 7 лет назад, По-английски
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
  • Проголосовать: нравится
  • +42
  • Проголосовать: не нравится

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

For C,is there a way to get the maximal solution? :D

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

Can someone help me with understanding of problem E. When we fix T, we need to know whether exist ai's, such that Sum of ai = a and dpei, k, ai > T. For that, we find ai's, such that Sum of ai <= a and dpei, k, ai > T. So here we use, that dpei, k, x <= dpei, k, y if x <= y, but I believe it's wrong. I will describe the graph below.

5
1 2 1
1 3 1
1 4 1
2 5 1

Here dp(1->2), 2, 1 = 4, while dp(1->2), 2, 2 = 1.

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

    I think we don't actually use dpei, k, x ≤ dpei, k, y, x ≤ y. We can leave the residual in our current node for example. Then we use dpei, x, k ≤ dpei, x + s, k + s, x ≤ y, s is some non negative integer, which is true. I hope i didn't misunderstand something.

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

    Indeed, the value does not increase monotonically with $$$a_i$$$. In my opinion, we could regard $$$a$$$ as a resource. When ensuring that the value is greater than $$$T$$$, we need to spend as little $$$a_i$$$ on the current edge as possible (make the $$$a-a_i$$$ as large as possible). In this way, there will be more ways to allocate the remaining edges (although this is a comment a long time ago, but I still reply here, hoping to help people who encounter this problem like me in the future)

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

I read codes of problem D and can't understand them. In most of the codes, when string length exceed 1000 on concatenation, they consider only first and last 500 characters of the string and leave the rest. I don't understand why they are doing so. Shouldn't they try to keep the meeting point as that is the point where new strings will be formed. One such code doing this : http://codeforces.com/contest/868/submission/31066000

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

    I deem what STD wanted to tell us is that the answer k will not exceed 9 and we may maintain arrays of distinct substrings,or bitset as we merge the two demanded strings.But in fact the solutions you mentioned seem a little different from the original solution,because these solution get ans from three strings(itself,left and right strings) for each query.Hmm...I have read similar codes from submissions so I put forward my idea here~

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

Can someone please elaborate how the maximum answer is 9 in DIV 2 D?

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

    The editorial assumes 10 is the answer and tries to see after all queries, if the number of unique substrings of length 10 can reach 2^10.

    At first it explains how many substrings of length 10 there are in the original strings. Assume input is one long string of length 100, maximum number of unique substrings of length 10 won't be more than 100.

    Now we need to know after each query, whats the maximum amount of new substrings of length 10 that can be added each time.

    When we concatenate two strings, the new substrings of length 10 must start in the first string and end in the second. If it started and ended in the first string, that means its not newly created (same with the second). The maximum amount of new substrings of length 10 for each query therefore is 9.

    So we started with 100 unique substrings of length ten, each query added 9.

    Maximum amount when done is 100 + 9 *100 which is less than 2 ^10. So 10 cant be a possible answer.

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

      Why is the number of unique substrings after concatenating two strings is 100 +9?

      Lets say two strings are there S1 and S2 of length 100. Both of them will have not more than 100 unique substrings of length 10. It is also possible that the 100 unique subtrings of S1 are not present in S2. So when we concatenate them we get a total of 100 (from S1) + 100(from S2) + 9(from border of two strings) unique substrings.

      So if there are 100 such strings then the number of unique substrings can be: 100*100 + 9*100.

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

        The input states that the total sum length of all strings in the beginning is 100. Then the maximum amount of unique length 10 substrings at start is 100 for all input.

        So the only way there can be 100 unique substrings in both S1 and S2 is if minimum 100 of those 200 were created new. If they were created new its already accounted for.

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

      Nice explanation, really appreciable!!

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

      Thanks for your explanation!

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

      wonderful explanation

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

On Div2C, the number of problems needed is at most 2, if k was bigger, lets say 6 or 8, would 2 be enough?

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

How is optimisation part O(nlogn) in F?

Edit: Got it

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

In div2C " if there is a good set of problems, then each of the problems in the set must be known to exactly two of the teams."

why is it so?

Can someone explain the proof elaborately?

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

    In a good set, even problems of the form 0111 and 1000(for k=4) would work. Any pair of problems with bitwise AND=0 must work. I don't know why he wrote that.