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

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

We will hold AtCoder Beginner Contest 352.

We are looking forward to your participation!

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

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

Yay, hope to solve E and F.

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

GL&HF!

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

Good Luck!Hope F!

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

GL&HR!

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

Bad luck and low rating!

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

Good luck!- Hope to solve F and G.

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

Hope to have good luck,and solve F and G! (But I know that's impossible LOL).

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

for problem E , what's the part of my solution that giving a TLE ? is it constructing the graph ??

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

    Yes. You don't need the whole graph.

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

      What do you mean by not taking the whole graph? Does it mean omitting to take all edges we get for each K_i and C_i?

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

    you can use dsu

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

    You can sort first and not use the whole graph

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

    I think Sum of K over all M is 10**5 as in the fourth line of the constraints.

    Constructing a undirected graph will be M squared which is 10**10 which will TLE

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

    I think you can use an algorithm similar to Kruskal's.

    You shouldn't use an algorithm with $$$n^2$$$, that may cost $$$100$$$ seconds.

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

I don't understand. Why does my code WA on 4 testcases?

»
7 месяцев назад, # |
Rev. 3   Проголосовать: нравится -8 Проголосовать: не нравится

Can anyone help me why I am getting WA on 2 testcases for this solution of F?

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

Does anyone know why I am getting Runtime Error for this submission for D? Is there any issue with the DSU implementation ?

https://atcoder.jp/contests/abc352/submissions/53139365

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

what's the idea behind F?

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

Hello! I'm just a mediocre problem setter who is wondering how to give many many many D&C NTT problems which has almost the same solution quickly. May Atcoder Beginner Contest help?


UPD: I don't know whether ironies are just unwelcomed in codeforces or it's not the right place to discuss a problem which has only 143 solves with many newbies? Please, tell me the reason if you decide to downvote me @_@.

UPD 2: Maybe next time I'll try "DCNTT in ABC G author's solution, are you retarded?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????".

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

    Of coz,ABC is a great way to improve your poly skill quickly.

    UPD:In fact I agree with wyrqwq's opinion.I think he's not saying that D&C NTT problems are not good,but too many similar D&C NTT problems in ABC are not interesting.

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

    They are meant to be educational for beginners, as it says in the name. ARCs and AGCs are held to (much) higher standards.

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

      I think it's not educational to put many tasks with a same algorithm again and again. It's just a sign of lack of responsibility and lack of time to polish a contest.

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

    probably you don't know that atcoder has acl and you can just call convolution in your solution without knowing what is ntt

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

      That is indeed helpful during contest time. But that doesn't help me learn the algorithm itself. Am I just participating in ABC only for getting a higher rank?

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

        I am trying to understand your frustration. if author's solution used std::set / std::map how much author is retarded?

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

          Are you saying: if author's solution contains int main() how much author is retarded?

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

            please no puzzles just answer

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

              Am I not clear? If you don't have the ability to hold a good ABC round every week, hold it every two weeks. If you cannot educate beginners but just keep creating trashes, stop using the name "beginner contest" but "atcoder library contest". If you cannot come up with a different G-placed problem from NTTing, stop posting problems for Atcoder and leave the company. In reply to your question: std::set and std::map are STL containers, and you are sure to learn them long before you understand how a balanced search tree works.

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

        I'd rather agree with unpopular opinion of wyrqwq.

        1. I completely don't understand the point of ACL. What is it designed for? I never use it and never will, because I try to improve or at least to keep up my coding skills, first of all. Also, for those who can still participate in official onsite contests, it is really harmful and, I suppose, many of real beginners will suffer from not being able to implement any specific variety of data structure adjusted to specific problem's requirements when they have no access to online resources and ACL. If they need to take a higher place and get more rating, that's completely their choice, although I don't really think it is quite educational.

        2. As for the name "AtCoder Beginner Contest", it's really misleading. Despite being not really high-rated lately, I wouldn't call myself a beginner. However on average I solve only 6 problems out of 7. Actually, at least a couple of problems are tricky and educational in almost every round, and they genuinely require a certain effort from me. And normally problem-setters should at least try to avoid similar problem ideas in adjacent contests, which may not be the case for ABC, unfortunately. I think this what wyrqwq meant if to throw away the emotional wording.

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

loved F, thank you for contest!

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

    What was the method for F? I was roughly trying to brute force on all non-trivial connected components, (each connected component of size > 1), because I knew 16! would be too slow, but 16 * 8! might pass.

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

      Yes, you can actually do brute force, but instead of factorials think about placing components.

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

Solved D with a segtree

All I can see now are segment trees

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

"Yes" != ("YES" || "yes").

LOL, still case sensitive on output strings.

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

Randomized solution for F gave me some hope for a moment

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

For E, I forgot to handle this disconnected case:

Spoiler

My submission still gets AC, even though I didn't output -1 for the above case.

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

Could someone help me debug E? I've been absolutely confused for the second part of the contest and still can't understand where the WA is coming from: https://atcoder.jp/contests/abc352/submissions/53123170

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

    brother, iam doing the same, but still wa

    Did you figured it out yet??

    i looked at Ac code he used vector<pair<int,vector> E(M) and sort it.

    aren't we doing the same thing using map(which automatically sort by first value)

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

    i think i got why we are failing, because it stores only uniques values there might be some subset having same edges weight but different components, but our map is assuming it's a single components!!

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

    Fails on following testcase.

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

      Not sure i got what you mean, my code outputs -1: https://ideone.com/pnCDk1 I only merge when I'm taking a new edge into MST:

      for (auto &[compCost, conComp]: edges) {
          int first = conComp[0];
          for (auto &vComp: conComp) {
              if (findSet(first) != findSet(vComp)) {
                  totalCost += compCost;
                  unionSets(first, vComp);
              }
          }
      }
      
      • »
        »
        »
        »
        7 месяцев назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Ah, okay, i finally got it. The test case should probably be

        5 2
        3 2
        1 2 3
        2 2
        4 5
        

        or smth similar

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

          Yes. I messed up with input format. https://ideone.com/TYhyXr

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

            Yeah, looks completely ridiculous i haven't thought about it now. I was so focused on trying to find an error in my Kruskal's implementation i completely overlooked the fact map can merge a couple of cliques together. Thanks for the help!

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

        Try this one:

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

Good luck !!!

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

Speedforces and Speedcoder :)

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

E Submission

What's wrong here?

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

When you join the contest late by $$$5$$$ minutes and get $$$F$$$ accepted after the contest end by $$$4$$$ minutes:

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

I would like to share my solution to problem F(taking me about 90 minutes to get accepted), as follows:

  1. Divide all the nodes(people) into several connected components, and suppose that there are cnt of them

  2. For each component, compute all the feasible rankings, and denote them based on bitmasks

  3. Use dp[i][j] to denote that, for the previous i components, whether we can achieve the state of j or not, and also use set last[i][j] to store the previous states that can reach j. Here, the state means the bitmask of rankings

  4. The final state should be (1<<n)-1, and we start from last[cnt][(1<<n)-1], and check whether the current state is unique or not. If it is unique, then we have unique rankings for the nodes within this component

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

can anyone figure out where i am going wrong in E. https://atcoder.jp/contests/abc352/submissions/53149749

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

    For this test case:

    Spoiler

    Answer should be -1, because node 6 is not connected. Your code does not output -1.

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

Can anyone give a hint on how to optimize problem E?

I did understand the part where we could build a graph from all the given weights (using DSU) and then apply Kruskal to find the MST, but I saw the limits on K and understood this solution would result in TLE.

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

    Try using prims.

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

    Recognize that some of the edges are redundant and use minimum spanning tree algorithm, kruskal or prims. For example on ignoring redundant edges, you only actually care about joining nodes into the minimum spanning tree if they are disjoint. And you can join all nodes to just a single node representative of a connected component.

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

      By redundant edges, do you mean multiple edges b/w (u, v)? How are you ignoring the redundant edges?

      My Approach: For every k_i and c_i, we can sort the k_i vertexes Then, there will be k_i * (k_i — 1) / 2 possible edges (u, v) with c_i weights

      In this k_i alone, we won't be getting any multiple edges, but in subsequent k_i, we can get (but for that also, we must do k_i * (k_i — 1)/2 to check which have been already done or not)


      Is there any better way to do this ? Above approach will also result in TLE, because there can be atmax N * (N-1) / 2 pairs of (u, v)

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

Can someone help me with problem E? Why my code is giving wrong answer on some test cases, even though I have also used the same logic as most others. Submission

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

to solve $$$E$$$ do I need to learn any algorithm?

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

The button "Custom" is gone.

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

What is the logic behind the question c please also provide me the java code for it

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

this contest was totally fixed and made me bored. abc352 is one of the boring contests ever. abc352 fixing and boring. abc353 is genuine and much interesting with sigma problems.

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

Most difficult biased and headache contest ever.