When submitting a solution in C++, please select either C++14 (GCC 6-32) or C++17 (GCC 7-32) as your compiler. ×

Endagorion's blog

By Endagorion, history, 6 years ago, In English
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
  • Vote: I like it
  • +42
  • Vote: I do not like it

| Write comment?
»
6 years ago, # |
Rev. 2   Vote: I like it +13 Vote: I do not like it

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

»
6 years ago, # |
  Vote: I like it +23 Vote: I do not like it

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.

  • »
    »
    6 years ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    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.

  • »
    »
    2 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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)

»
6 years ago, # |
  Vote: I like it +7 Vote: I do not like it

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

  • »
    »
    6 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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~

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    6 years ago, # ^ |
      Vote: I like it +12 Vote: I do not like it

    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.

    • »
      »
      »
      6 years ago, # ^ |
        Vote: I like it +6 Vote: I do not like it

      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.

      • »
        »
        »
        »
        6 years ago, # ^ |
          Vote: I like it +14 Vote: I do not like it

        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.

        • »
          »
          »
          »
          »
          6 years ago, # ^ |
            Vote: I like it +3 Vote: I do not like it

          Oh yes, thanks. Did not notice that :p

    • »
      »
      »
      6 years ago, # ^ |
        Vote: I like it +3 Vote: I do not like it

      Nice explanation, really appreciable!!

    • »
      »
      »
      6 years ago, # ^ |
        Vote: I like it +3 Vote: I do not like it

      Thanks for your explanation!

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      wonderful explanation

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

»
6 years ago, # |
Rev. 4   Vote: I like it 0 Vote: I do not like it

How is optimisation part O(nlogn) in F?

Edit: Got it

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.