maroonrk's blog

By maroonrk, history, 14 months ago, In English

We will hold AtCoder Regular Contest 165.

The point values will be 400-600-600-700-700-800.

We are looking forward to your participation!

  • Vote: I like it
  • +124
  • Vote: I do not like it

| Write comment?
»
14 months ago, # |
  Vote: I like it -10 Vote: I do not like it

Cool contest, especially $$$B$$$ & $$$C$$$. Maybe there is easier solution, i solved $$$B$$$ using segtree(it is straightforward to find such index $$$f$$$, that after an operation on $$$v[f : f + k - 1]$$$, $$$v$$$ is maximal. We can compare results of operations $$$v[x: x + k - 1]$$$, $$$v[y : y + k - 1]$$$ in $$$O(\log n)$$$.) $$$C$$$ is pretty cool too. Thanks!

  • »
    »
    14 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    How you solved C?

    • »
      »
      »
      14 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Binary search on asnwer. THe same as editorial.

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

      There is a solution way easier than the editorial. Make a MST, and Color the vertices by the odd or even of its depth on the MST.

  • »
    »
    14 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Share code, please.

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

    I solve B greedy: As it is sure that after sorting the array will become lexicographically <= of the original array. First I calculate the longest increasing subarray.

    Case 1
    Case 2

    May be I am wrong but give me AC. submissions/45685014

  • »
    »
    12 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    can you explain how you used segtree in your solution

»
14 months ago, # |
  Vote: I like it +25 Vote: I do not like it

I passed D in the last 2sec!!!!!

my submission

»
14 months ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

is this code O(n^2)? https://atcoder.jp/contests/arc165/submissions/45684077 or did i make a error somewhere.

(I asserted some places, so i do think its O(n^2))

(The Solution is to find scc, condense them, refind scc. i pass a graph of size atmost m atmost n times and my m pointers also move atmost n times, so i believe its n^2)

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

    Since you don't clear the graph fully I believe that it can have $$$O(nm)$$$ edges, so it will work in $$$O(n^2 m)$$$?

    • »
      »
      »
      14 months ago, # ^ |
      Rev. 3   Vote: I like it +11 Vote: I do not like it

      Towards the end of my solve function, you can check just before i call scc() i assert the graph has <= m edges

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

        Oh, I didn't notice that you don't add a new edge if the pointer didn't move.

        Well, asserts seem to confirm that it is $$$O(n(n+m))$$$. The general structure of the solution is correct.

        Probably vector<vector<int>> is not a great idea. I generated a test: 223740510.

        • »
          »
          »
          »
          »
          14 months ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          unfortunate (and surprising since my friends have as low as 200ms) but thanks anyways

»
14 months ago, # |
  Vote: I like it +46 Vote: I do not like it

B test cases too weak
Passed with checking for the last 100 indexes and indices of elements 1...200 and taking the best of them
https://atcoder.jp/contests/arc165/submissions/45673283

  • »
    »
    14 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    The tests are not weak, maybe author don't even expect such fake solution:)

»
14 months ago, # |
Rev. 2   Vote: I like it +49 Vote: I do not like it

First time in Top 10!

Also, problem F is really similar to IOI19 arranging shoes. F just added "lexiographically smallest" to IOI19 shoes, but it made the implementation way harder.

»
14 months ago, # |
  Vote: I like it +25 Vote: I do not like it

Are tests for B too weak? Looking at first python AC solution: https://atcoder.jp/contests/arc165/submissions/45672082

It seems like it should fail for something like:

4 3
3 4 1 2

It outputs 1 3 4 2. I think it should be 3 1 2 4

»
14 months ago, # |
  Vote: I like it +10 Vote: I do not like it

I have little difference with editorial in solution to $$$C$$$. I calculate the maximum $$$x$$$, such that if we remove edges with $$$w \ge x$$$, graph is bipartite. I use binary search for it. Let it be $$$A$$$. But then I don't calcalute minimum weight of path with length $$$2$$$ for remaining edges. Instead, in the whole graph I calculate minimum weight $$$B$$$ of path with length $$$2$$$, only once. The answer is $$$min(A, B)$$$.

»
14 months ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

I wrote I solution to C using binary search and checking whether the graph bipartite. But is gets WA, I have no idea why. I was debugging it for an hour, then I wrote a DSU solution.

Code (WA)
  • »
    »
    14 months ago, # ^ |
      Vote: I like it +5 Vote: I do not like it

    Graph can become disjoint after removing edges. And you check only one connected component of it.

»
14 months ago, # |
Rev. 5   Vote: I like it +5 Vote: I do not like it

Why is this solution correct for B? On the following input
6 3
6 3 2 5 1 4
The program outputs
6 3 1 2 5 4
When we can obtain
6 3 2 1 4 5
By applying operation on the last 3 elements. Please can anyone tell me what i am missing?

  • »
    »
    14 months ago, # ^ |
    Rev. 2   Vote: I like it +15 Vote: I do not like it

    You aren't missing anything. Tests are apparently weak.

»
14 months ago, # |
  Vote: I like it +11 Vote: I do not like it

How to (or, Can we) add hacks for B? Tests are too weak.

»
14 months ago, # |
  Vote: I like it +38 Vote: I do not like it

As some of you mentioned, tests for B were weak. We added a few extra tests as after_contest.

  • »
    »
    14 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Will the solutions be rejudged(or perhaps rating recalculated)?

    • »
      »
      »
      14 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      No, it doesn't affect in-contest submissions.

»
14 months ago, # |
  Vote: I like it 0 Vote: I do not like it

In second solution of C can someone explain me how to find the weight of the edge at which the graph first becomes non-bipartite when starting from a graph with N vertices and 0 edges and adding M edges in ascending order of weight. I wasn't able to understand how the approach given in the editorial works to find this.