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

Автор Noureldin, 4 года назад, По-английски

Codeforces rounds are shorter than the ICPC world finals (40-50% the time of ICPC contests). Yet, the ICPC world finals is not equivalent to 2 Codeforces rounds. It wouldn’t have 2 As, 2 Bs, and so on. So, an ICPC contestant will need a relatively different level of stamina than the one needed in Codeforces rounds. It seems that people who practice only over Codeforces rounds, don’t usually enjoy the same level of comfort and confidence dealing with ICPC format.

There is a difference between the style of problems presented in Codeforces round, and the problems presented in ICPC world finals, and it seems that problems that fit the style of ICPC world finals are not accepted by Codeforces coordinators to be in codeforces rounds at least according to my own experience when I tried to propose a contest.

Problems presented in Codeforces rounds typically have the following characteristics:

  • Almost no knowledge required. It has to be 100% problem solving without the need to know any algorithm before coming to the contest.
  • Its code should be relatively short and quick to write. Something like 40-60 lines of code.

Although these characteristics might be getting a cleaner and better problem set (depending on what the words cleaner and better mean), however, this is not what the ICPC world finals look like.

The characteristics in the ICPC world finals are:

  • Long statements.
  • Too many corner cases.
  • You need to know and understand many algorithms and data structures and often the problems boil down to either tweaking a standard algorithm to the specifics of the problem or to understanding that the solution of the problem can be computed (or built) from the intermediate steps of a standard algorithm or an algorithm inspired by it.
  • Hard idea, not easy to find the solution anyways.
  • Long codes are normal and expected.
  • Modeling problems, where the objective is to transform the problem to (an often standard) model, where the hard step is the modelling step not the final algorithm.

So the questions to the CF community (and also ICPC community, judges and problem setters if possible) are:

  1. Is there a real difference in style between ICPC world finals and Codeforce rounds or is it superficial differences?
  2. Why does this difference exist?
  3. Are Codeforces ratings a good proxy for the ICPC world finals standings?
  4. Can people who want to succeed at ICPC world finals and its qualifiers depend on Codeforces as a main source of practice?
  • Проголосовать: нравится
  • +137
  • Проголосовать: не нравится

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

A short attempt.

  1. Yes, there is a real difference in style.
  2. There is no single Right Way to set problems, and the contests are very different.
  3. Codeforces ratings might correlate with ICPC results, but they don't imply each other.
  4. No, the problems and the contests are very different.
»
4 года назад, # |
  Проголосовать: нравится +65 Проголосовать: не нравится

Also, you're missing the elephant in the room: ICPC is a team competition, Codeforces rounds are individual. That opens a whole new world of strategies and tactics. For example, our team had always heavily relied on code review, pair programming, sharing knowledge/insights, slightly less on problem swapping.

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

    yes, this is an important point, team strategy is meant to optimize the team's performance so that they would end up solving most (all?) problems they can with the smallest penality possible, but improving the skill of the individual contesntants is what allows the team to solve harder problems hence question #4.

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

      Don't talk about ACPC20 like any other ICPC contest

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

      Yes, improving skill of every individual contestant is definitely very important as well. Our strategy for preparation for 2014 was: each of us participates in most individual contests at TopCoder and CodeForces, plus three full-fledged five-hour ICCP-style team contests per week. Problems at ICPC-style contests are typically much harder than on TC/CF, and you have much fewer easy problems to spend time on.

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

    Based and elephantpilled.

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

"Almost no knowledge required. It has to be 100% problem solving without the need to know any algorithm before coming to the contest. Its code should be relatively short and quick to write. Something like 40-60 lines of code." — I think neither of these is generally true. Maybe Codeforces rounds have changed lately, but I've seen plenty of problems that require heavy coding, advanced knowledge or both. Of course, these tend to be among the last ones in a set, but so do the non-easy ICPC WF ones. I would still agree the contest types vary non-negligibly much, but the duration and team format are much more of a factor. I feel like most of the CF/ICPC WF problems could well switch places (with obvious exception of those that would take more than ~1h30m to code, assuming you already have the idea, which obviously can't fit the CF format).

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

    I was hesitant to include that line in the blog, because it's true that most problems can switch places, however the distribution of theses problems is very different, take for example flow problems or fft problems there are 90 and 50 problems with these tags on CF out of ~4500 problems, another example is geometry problems where most geometry problems on CF require high school math + some standard tricks which don't really help if you want to train for ICPC level geometry problems, another example would be backtracking problems with heavy pruning which are virtually non existant on CF (there could be a couple though)

    there is also an argument that any problem that's suitable for a CF round can appear in one of the ICPC contests (starting from university qualification up to the world finals), but not the otherway.

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

    Even the easy problems in ICPC WF are implementation heavy so "Of course, these tend to be among the last ones in a set, but so do the non-easy ICPC WF ones" doesn't seem that accurate to me, at least based on my WF participations and virtuals that I can remember.

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

"Almost no knowledge required. It has to be 100% problem solving without the need to know any algorithm before coming to the contest."

"You need to know and understand many algorithms and data structures and often the problems boil down to either tweaking a standard algorithm to the specifics of the problem or to understanding that the solution of the problem can be computed (or built) from the intermediate steps of a standard algorithm or an algorithm inspired by it."

It happens mainly because ICPC WFs don't allow internet access while during Codeforces rounds, Internet access is available, allowing to use literally any implementation of any algorithm available over the internet, depending upon your googling skills.

Duration of contest is also a factor.

Not sure how ICPC WFs might happen in post COVID scenario though.

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

icpc needs antontrygubO_o to coordinate contests for them

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

Which contests in which platform do you think are most similar to ICPC world finals? (Maybe let me specify the easier half of a world finals contest, or equivalent of gaining bronze medal in it)? CF div1, cf div2, cf educational, atcoder begginer, regular or grand contest, srm, something on codechef or other?

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

First of all, you have a very rosy view of Codeforces contests. Div 1 D/E/F definitely take more, and considering that's half of a Codeforces round, I'm not sure where you're getting this idea from. I wish I could solve these problems in only 40-60 lines. CF definitely has problems with tweaking standard algorithms (probably more frequent than ICPC actually), and plenty of very tricky ideas. If anything, I think ICPC problems tend to be more "standard" and can be solve with just fundamentals and experience. I wonder if there's an effect where, because ICPC is longer, people spend more time on the harder problems compared to CF, where they might spend most time on mediums before getting to the hard problem(s).

Also, directly comparing difficulty between a CF Div. 1 round and ICPC World Finals is a little unfair. WF is designed for the top ~100 teams in the world, it would be like if only red coders were allowed to compete in a Div. 1. Of course you can only put harder problems on a contest for better teams. If you look at ICPC Regionals, the problems are definitely not as difficult/advanced.

I think in general, the biggest difference between ICPC and CF is that:

  1. ICPC tend to have more implementation, mostly because the contests are longer to allow it. You'd never be able to set a 60-minute implementation problem on a 2 hour CF round. This time difference is even bigger considering that problem-solving time is part of the 2 hour CF round but not part of the 5 hours of keyboard time in ICPC (you have 15 total man-hours in ICPC).
  2. ICPC can expect that contestants are all students with time to study and learn well-known academic algorithms (e.g. flows and FFT), along with preparing 25 pages of prewritten code. CF tries to be more accessible to people with less formal algorithms background (IOI even more so), so I think they try to avoid heavier black-box algorithms.
  3. As I mentioned above, ICPC WF can be harder than CF because there are better teams, while ICPC Regionals can be easier than CF because there aren't going to be 100 red coders at one regional, so difficulty looks different than CF.

Obviously, CF ratings are going to be a great predictor of ICPC success. Essentially all of the problem solving and coding skills transfer. Honestly, I think the causation may be mostly the other way. I think ICPC rounds, because they're more implementation heavy, are great practice for getting very strong fundamentals, which will help you in all contests. Also, ICPC teams tend to practice a lot, which shows in CF rating. Overall though, doing any problems is good, so don't fret too much. Don't go into ICPC without having thought about the format/the teamwork at all, though.

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

Big Difference: WF 2020 has not yet been held