Блог пользователя -is-this-fft-

Автор -is-this-fft-, история, 3 года назад, По-английски

At the time of writing, it has -513.

Now usually, it would mean the round has some issues. But in this case, I don't think this is the reason. An announcement that has this many downvotes is usually accompanied by a lot of complaints in the comment section. Today we have none of that. Sure there are a few people who didn't like this or that, but there is no avalanche of negative comments that would usually accompany a -500 announcement. (So if you plan to reply to this blog with some complaint about the round — is it realistic that enough people downvoted it to get to -500 and nearly no one left a comment?)

Is someone botting?

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

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

When I read the title, I figured the problem statements must be Genshin Impact themed, and there is no need to comment about it because it is assumed that everyone already knows. But I verified it and it is not the case. Truly strange.

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

I didn't like the round because:

1) Div1A is well-known, I think I already saw it a couple of times before

2) Div1C is standard segment tree problem

3) Div1D has such constraints that almost every approach passes(a lot of solutions that passed are probably not intended) easily within TL while intended approach(I guess it was intended, not sure about that) is hard to fit in 3s.

I was also curious why it got so many downvotes, and here are some reasonable complaints from the comments to the announcement:

1) Pretests are weak for div2B — div1D

2) div2A has heavy image in it's statement

3) the gap between div1A and div1B is too big(although I don't think it's a problem)

4) there were complaints about how it is hard to understand the problems, but I understood every problem from the first try, not sure about these

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

    Div1C is standard segment tree problem

    No offense but I find it weird that you claim a problem standard without being able to solve it?

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

      Well, I decided that finding a place to copy a segment tree from and modifying it will take more than 40 minutes for me and I will definitely not enjoy doing it(I just hate segment tree problems with all my heart), so I skipped it for D.

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

        That's a fair point. I didn't realize you just came back after a long break.

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

        You only need point update range query tho, it's only like 10 lines of code. Significantly easier to implement than problem B imo

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

    explain me how to push operation "1 on segment" in C?

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

      You can do it offline by asking "when I set almost all zeroes on segment?"

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

    In fact, there exists another solution to Div1C/Div2E, which used union-find disjoint sets.Data structure isn't necessary.It's from my friend.147520429

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

I've edited this comment to reorganize my thoughts and to make my feedback more constructive, since I think I may have been insufficiently focused on the main factor that ruined the round for me and overly harsh in my criticisms of the other problems. Feel free to check the revision history if you'd like to see the original version :)

In short, I downvoted because my contest was wrecked by a tight time limit on D1D. I'll discuss some other criticisms afterwards, but this was really the main issue I have with the round--i.e., I would not have downvoted if not for the tight TL, and I think the round was otherwise no worse than the usual CF round, and even somewhat better than the average round in a few ways. Similarly, I don't view this as an explanation for the mass downvotes--I can understand people who were personally affected by constant factor TLEs or FSTs downvoting, since it's easy to see how those can ruin the round for the people they affect, but I don't understand or agree with the downvotes from competitors who didn't run into those issues.

I had to spend the last half-hour or so of my contest trying various constant factor optimizations to get my solution to D to pass; meanwhile, many others were able to get AC far more easily using various methods of cheese (e.g. bitsets, randomized approaches, etc). For context, when I benchmarked my solution, the main bottleneck was $$$O(n 2^m)$$$, with the constant factor from a policy-based hash map. It was surprising to me that a solution involving $$$3.2 \cdot 10^6$$$ hashmap operations TLE'd, and given that this is the same complexity as the intended solution (and, at least in theory, a better complexity than the bitmask solution), I would argue that the TL was overly tight and should have been somewhat higher.

I found this particularly frustrating because it meant that I spent the vast majority of my contest code-monkeying rather than thinking about the problems. This was partly my fault: I vastly overcomplicated the implementation of C and previously incorrectly asserted that the problem was essentially an implementation bash; it turns out that the problem is actually quite nice overall. However, excluding C, I spent at most 10-15 minutes thinking of solutions and around seventy minutes implementing, around half of which involved optimizing my D to get it to fit within the TL. In contrast, if not for the TL issue with D, I would have been able to spend the last half-hour of the contest thinking about E (which seemed like a very interesting problem!), which would have made the experience much more satisfying. (Incidentally, this sort of thing is one argument in support of fewer problems--I think deleting D from the set and changing the TL on C could have made for a pretty satisfying five-problem Div. 1 round, although the gap between C and E is a bit large.)

Otherwise, I have three criticisms of the contest:

  1. Some others have reported TL issues with C; my $$$O(n \log^2 n)$$$ solution passed with around 150ms to spare, but others have constructed $$$O(n \log^2 n)$$$ solutions that TLE. I think it would be remarkably hard to cut all $$$O(n \log^2 n)$$$ solutions without creating constant factor TLEs among $$$O(n \log n)$$$, so my suggestion would be to increase the TL (perhaps to 2.5s) to admit more $$$O(n \log^2 n)$$$ implementations. That said, I think increasing the bound on $$$n$$$ to $$$300,000$$$ and reducing the time limit to one second in an attempt to admit only $$$O(n \log n)$$$ solutions would also be a reasonable choice.

  2. I'm not a huge fan of problems like B where coming up with the general construction is relatively immediate and so the main challenge of the problem comes from working out implementation details (in my case, avoiding off-by-one errors of various sorts). I recognize that this is a personal preference, and I don't view it as an objective failure of the contest (and I certainly would not have downvoted the round just on the basis of this problem).

  3. My impression is that the FST rate for this contest was somewhat higher than average. This is obviously a topic of active debate, but I think contest authors should do their best to set strong pretests; I can't think of any particularly compelling reason that failing a test excluded from pretests should be penalized more severely than failing a pretest, and thus, it seems most fair to me to try to make pretests strong enough to reject every incorrect solution. That said, the number of FSTs wasn't vastly higher than other recent rounds, so I don't see this as a critical flaw in the contest.

None of the above three issues are significant enough to lead me to downvote a round, though I can understand why people who FSTed or who took constant factor TLEs on C would downvote.

Now that I've gone over my criticisms of the round, I should note that I actually liked most of the ideas behind the problems in the contest. D1C-E were good problems, barring the TL issues in C and D, and I liked D2B and D1A/D2C as problems that are quick for those who can solve them easily and need to move on to the rest of the round but interesting for those working at the D2B/C level. This contest had its share of preparation issues, and my hope is that future authors will be careful to avoid these sorts of problems (preparing a contest is challenging, particularly when one tight TL can ruin an otherwise good round for anyone it affects!), but I do hope that the authors will continue to propose problem ideas.

As an aside, I think that the proposed theory that the downvotes were caused by the timing of the round is highly implausible. The contest had several hundred upvotes prior to the round, suggesting that the contest was downvoted retroactively by participants, not in advance by people unhappy with the timing. I don't see the difficulty balance in Div. 2 as a valid reason to downvote the round--creating a balanced contest with only six problems is remarkably difficult, and I don't think this round was remarkably unbalanced. (I find the theories that people were frustrated by Div. 2 A for various reasons or that those who FSTed downvoted the round somewhat more plausible, and the latter theory is consistent with the strong association between FST rates and downvotes.)

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

    I kind of agree with the points about B and D, but not so much about C. Yes, the $$$n \log ^2 n$$$ situation is no doubt undesirable, but for the first part — there is a nice solution with just one range minimum segtree with point updates and no "bashing" involved. I actually thought it was pretty interesting and pleasant (even though maybe not completely new) and don't think it deserves much hate.

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

      Point taken; I'll need to take a look at the cleaner solution :) Even if the uglier solution was the only way to solve the problem, I wouldn't consider it a glaring issue, and I would have certainly considered the round successful if that was the only problem. I view the implementation issues are largely secondary to the issues with constraints and the FSTs (in particular, I found it frustrating to go straight from a DS implementation problem to a problem that ultimately consumed lots of time on constant factor optimizations).

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

      I agree that C is a nice problem, the TL is just dumb. As Geothermal mentioned, some $$$\mathcal{O}(n \log^2 n)$$$ solutions TLE, while others don't. Was the point of the strict TL to TLE $$$\mathcal{O}(n \log^2 n)$$$ solutions with bad constants?

      Trying to cut solutions with bad constants is stupid, because it encourages the contestants to do silly and not very interesting things to make them pass, like how I used Van Embe Boas tree to squeeze my $$$\mathcal{O}(n \log^2 n)$$$. By the way, it would still pass even if the limits were 1s and $$$n$$$ up to $$$3 \cdot 10^5$$$.

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

    "I can't implement in 5 lines" -> bad problem.

    Only complaints on D seem valid to me. If anything I think problems like A should be eliminated. I think the many FSTs and supposedly large jump in difficulty for div2 caused more of the downvotes.

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

      This is a pretty ridiculous strawman argument. I'm not claiming that any problem that I can't implement in five lines is bad. My argument is that problems that require vastly more time to implement than to come up with the general solution are not ideal, and a contest should not exclusively consist of such problems. (In comparison, I think there are lots of nice USACO problems that involve long implementations; those problems are nice because they require some depth of thought to solve, rather than being instantly reduced to a problem that is standard but annoying to implement.)

      Admittedly, any implementation-heavy problem requires vastly more implementation time than thought for competitors who are significantly stronger than the problem is difficult, so it's impossible to avoid this sort of problem entirely. What I found frustrating was that my entire two hours was spent doing lots of implementation and very little thinking--I spent twenty minutes, thirty at most, of this contest thinking about solutions and the rest of the contest code monkeying, which is not a particularly fun experience.

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

        I think being able to write relatively concise code is part of the thinking and fun in itself. I do not want to spend all my time on tedious implementation either, but neither my B nor C implementation felt tedious nor long enough to be drastically longer than thinking for even a better competitor like you, and I do not like problems with no implementation at all.

        It looked like majority of your code-monkeying came from problem D anyway, which I agree does seem like an issue. I actually don't mind constant optimization in general, but I don't think it is fit for cf-style rounds. And your solution to C could be cut down drastically, which to me is part of a problem's thinking aspect.

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

        B is not implementstion heavy even for a B, c'mon. However it did take me a good while to come up with the solution, my nutella friend couldn't do it at all despite trying for a long time too.

        C can be shite in implementation, but can be made very easy implementstion-wise if you think carefully.

        I don't know how does the O(n 2^m) solution look like to D, but mine that I described under announcement thread is very easy to implement and should have no problems fitting into TL (actually I struggled a bit with TL too though, but that's because I was lazy and didn't write simple dp).

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

    stop crying, because you could've been an lgm. just gain the rating back the next contest, like everybody else has to.

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

300iq loses raiting -> downvotes come

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

The round was definitely not my favorite, but i don't think it was 500 downvotes bad. Rip author's contribution.

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

If you are reading this please upvote the announcement (if you are a reasonable person). Specially if you are from div1. Div1 rounds are so rare. It should only be downvoted if the round was so bad to the point that you would prefer the round didnt exist, not because you didnt like some minor things. For me it is a matter of respect with authors.

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

Div 1E was nice. Finally understood how does Online Convolution/FFT work.

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

    Agreed--it's a shame that there was so little time to think about it as the fifth problem in a two-hour contest, because it seemed like a nice problem and I would have liked to have more time to work on it. (I actually think this contest could have worked quite well as a five-problem contest, with D removed, although the gap between C and the current E might be a bit steep. I'm not sure Div. 1 users would be downvoting the round if D had been removed and the TL on C had been increased, perhaps to 2.5s.)

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

      whats the point of increasing TL in C if correct solution is 1/10th of TL

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

        I'd also be open to lowering the time limit and raising $$$n$$$ substantially (e.g. $$$n \leq 300,000$$$ with TL = 1s) to cut $$$O(n \log^2 n)$$$ solutions. The current time limit passes some $$$O(n \log^2 n)$$$ solutions but not others, and I think this kind of inconsistency is undesirable. It would be better to either accept all $$$O(n \log^2 n)$$$ solutions or to try to cut all of them, rather than leaving the results up to constant factor optimization.

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

          Lowering time limit would be ideal imo, but then you have to deal with java/python competitors complaining, which is why you get stuck in these situations.

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

          I think allowing some solutions with extra log to pass is often necessary evil to allow most correct solution to pass without extra care. (but today probably constraints shpuld have been bigger)

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

Due to unusual timing, I guess.

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

There are literaly thousends of FST, a huge amount on problem D2C. Also problem D2A statement was hard to understand for lot of partitipants.

Unfortunatly more than half of the partitipants have no ability to work on other problem than the first two or three in Div2.

A nice D1C or the like does not influence the downvotes, because only like 2% did work on that problem.

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

Enormous gap in difficulty from D2C to D2D (like 1200 vs 2200).
Weak pretests (personally I couldn't care less, people should think with their head and not rely on pretests so much)
Quite a frightening D2A statement, Just look at it https://codeforces.me/contest/1642/problem/A , I'm pretty sure a lot of green/greys left the contest right after seeing it.

Now, probably I am an exception, but to me all of it is overshadowed by the fact that we still don't have an editorial. Which makes me believe that once again authors didn't bother to write it beforehand. And I strongly believe it should not be allowed to schedule rounds without pre-written editorials like never.

I haven't downvoted it yet (not sure though), but altogether leaves a bad aftertaste

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

Somewhat disappointed with the responses so far. Some complaints about problems, but i see nothing that would justify — or even explain — -500. Also some very improbable guesses like timing: many contests have unusual timing or something but no such responses.

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

    I don't know what kind of answers you expected but people listed practically every single thing for which announcements are usually downvoted

    Except technical ones though

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

      I expected answers that could reasonably explain why this particular round might have -500.

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

        My guess is it is kind of a problem with binary voting mechanism

        Even though the round was not horrible, it was below the bar in many aspects, Therefore many people despite not having particularly bad experience felt somewhat let down and downvoted

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

        Could it have something to do with the ongoing tensions between Russia and Ukraine? (just wondering)

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

I think the downvotes are absolutely unreasonable. Sorry, if I sound biased as I gained rating in the contest. If the downvotes are not from 500 bots, then my opinion probably doesn't matter at all, since these 500 downvotes would've come majorly from div2 participants. Still.

The contest went flawlessly — there were no issues with the testing system or the correctness of the tasks. The amount of fsts and hacks is negligible. Having 2% of the solutions fail systests is a perfectly fine number. I think that this can compare to the people who fail hacks or systests on edu rounds, and people don't generally mind. Judging by the absence of clarifications, the statements were clear enough as well.

The problems haven't appeared in a contest a week prior. Nobody even seems to have the links to the exact same problems, and similar ideas is not a reason to complain.

People seem to complain about heavy implementation, but I personally think it's a skill issue. Thinking about ways to implement a solution neatly is absolutely a skill. And there are ways to implement the solutions to today's problems neatly (at least d1A-D which i know how to solve). If you consider coding a segtree a burden, git gud.

I guess I have to agree with complaints about unintended solutions passing in D. Seems like there's no way to set the constraints to only allow the intended solution. Maybe the problem should just have been ditched. Quite sad, but welp.

There seems to be a difficulty gap in div2, but since it's towards the end of the problemset, I don't think it's such a major issue. It's not easy to estimate the difficulty of adhoc tasks. As an experienced problemsetter, I can 100% get behind the authors and the coordinator not seeing how hard the task is. I would not blame anyone for that.

I would say that at least div1 contest went great, and I'd encourage people who haven't voted on the announcement to upvote it. Most of the authors are new to the platform, and they absolutely don't deserve the treatment they receive. It's important to show authors our appreciation of their work. Next time they will have the experience and won't make the same mistakes.

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

downvoted because everyone downvoted

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

What really pisses me off about this whole downvote thing is that the round announcement no longer shows up on my "Recent actions" widget (because I have "Hide low rated blogs" setting on) meanwhile the IOI China team post has more than 1000 upvotes and people just keep spamming one exact comment ¯\_(ツ)_/¯

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

I think that a lot of downvotes came from people who are disappointed by many FSTs after the round.

Quite a lot of middle-ranking participants(Specialists ~ Pupils) fell to a performance below 1200(according to Carrot) due to FST in D2C, which was enough to make people feel unfair. I think the cause of so many downvotes is mainly this "feeling unfairness". There were also some complaints about the difficulty gap in D2C~D2D.

A painful footage on Div2

Nevertheless, I think that these many downvotes are overkill and can discourage the organizers of the contest who worked hard. The contest went flawlessly overall, pretest testing was processed without delay.

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

I believe that a bunch of downvotes were received because of many of participants planned to take a part in that competition. But the competition site was immediately down, so maybe some tried to use backup sites m1,m2,m3 which were also down, so they quit.

It is sad if someone puts an upvote artificially only because of reading this thread.

Personally I was about to quit, but backup site went back. So I tried to read a problem statement of Div2A and it was awful to read because only a 1/3 of the image was visible. Images were pointless comparing to the difficulty of problem A, it felt like I was solving Div1F. Later I realized that main was back and I lost much time by hardly navigating in backup site while first problems were about speedforcing. If you didn't read problem statement Div2A in mX.codeforces.com you won't understand.

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

I didn't downvote this round, although I don't like it either. Instead, I upvote this round for so many downvotes I have seen and what to comfort author a little. I am grateful for authors for taking time preparing the contest and I seldom downvote a contest.

The only reason that I downvote the round is that I feel the author of the round want to trick us instead of educate us. The problems are bad quality, the description are confusing and so many unnecessary traps, the time limit are so tight that only allow specific solution or coding language pass, very weak pretest but very strong system test to make people FST on purpose.

The only round that I downvoted is round #745, with all ingredients I mentioned above. I upvoted many contests (even if I have big rating drop after the contest) only because I like the quality of problems.

I have prepared some problems that is very interesting and educative, so I may host a div2 round in the future.