PR_0202's blog

By PR_0202, history, 3 years ago, In English

Let's discuss the various approaches used to get the maximum points. :)

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

| Write comment?
»
3 years ago, # |
  Vote: I like it +10 Vote: I do not like it

Use dp approach

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

We used Alltheirmothers technique.

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

    Can you explain what this technique is?

»
3 years ago, # |
  Vote: I like it +21 Vote: I do not like it
We actually saw that the skill increases if it's equal to the required one in the last 30 minutes :(
»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Reply your scores in this thread ≧◠‿◠≦

»
3 years ago, # |
Rev. 2   Vote: I like it +8 Vote: I do not like it

$$$>$$$ teammate tries int func(project a) { return (a.b * a.s) / a.d; } as a discriminant between projects

$$$>$$$ teammate writes 220 line code sorting those projects by that discriminant

$$$>$$$ teammate leaves

$$$>$$$ "team" gets 3038681 points

»
3 years ago, # |
  Vote: I like it +15 Vote: I do not like it

When will they unfreeze the scoreboard ╥﹏╥

»
3 years ago, # |
  Vote: I like it +41 Vote: I do not like it

Why does it have to take so long to reveal the results? :(

We repeatedly took the task with maximum "score upon completion" / "total hours needed to complete". Used some bipartite matching stuff to find earliest time we can start a task. This was good for 3.486434 million points.

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

    Do you mind explaining the bipartite matching part? We thought about it but got notwhere

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

      We ignored mentoring except in easily solvable special cases, which makes it possible to use bipartite matching to figure out if you can do a job with a given set of people.

»
3 years ago, # |
Rev. 2   Vote: I like it +96 Vote: I do not like it

Not sure if practice is broken, but my solution for D was few mins late https://twitter.com/FakePsyho/status/1496973852093685760/photo/1

Edit: Posting pictures is hard, Got 2M on D in practice

  • »
    »
    3 years ago, # ^ |
    Rev. 4   Vote: I like it -33 Vote: I do not like it

    Our story is also the same. No difference.

    Our total would have been ~3754630. Missed potential WFs. :/

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

      You're off by one zero ;)

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

        Sorry. Definitely today is not a good day, to begin with. ;/

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

    Nice! What is your solution doing? Is there something special in the test structure?

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

      No special structure. The trick was in mentoring.

      I believe D was designed in a way that's fully solvable with an extremely narrow path. Each contributor starts with a single skill, but some projects have 2 roles requiring the same skill. Most probably for some of those projects you only have 1 contributor with that starting skill so you have to train another one.

      If all of your people have single skill there two way of learning another skill:

      • If you have 2 roles with the same skill and one of them is lvl 1, you need a mentor + any other contributor (and they will get lvl 1)

      • If you have two lvl 1 roles with different skills, you can take those contributors and swap them: instead of getting (potentially) to level 2, they will become mentor to each other and learn a skill.

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

    Impressive! Could you elaborate on how SA can be applied here?

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

      I didn't do SA, but my teammate (sullyper) did.

      You can do SA on the order of projects. This should work fairly well even if your "matching" (subproblem of finding contributors for specific project) is not fully deterministic. Alternatively, you could add a "seed" to each project that makes matching more reliable. Then, your state transition is either moving projects or changing seeds.

      His SA that ran for 4H got 3.1M (out of ~3.2M max). In my case (random order of projects), I got a score of 2M around once per 1000 runs, but each run took less than 0.1s.

»
3 years ago, # |
Rev. 2   Vote: I like it +1 Vote: I do not like it

This was my first hashcode and I was overjoyed with our performance. Though we did greedy we managed to place ~1K globally (≧▽≦). Edit: Got around 2.4 Million with it

»
3 years ago, # |
  Vote: I like it +8 Vote: I do not like it

What was your approach for F? Its name "Find great mentors" suggested that maybe you should prioritize mentoring somehow, but the obvious approach of greedily selecting people to increase their level or otherwise to select people with lots of skills only got around 250K. How do you get to 500K+?

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

    We got 770k+ on F (on practice) greedily selecting the project which maximizes $$$\frac{score}{timestamp_{completed} \cdot r}$$$.

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

    Priorotizing people with low skill levels got us to 600k

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

Weren't they supposed to announce the finalists by now? Did anyone hear anything from them?

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

    The scoreboard is now finalized according to the competition platform, so they should notify qualified and waitlist teams in the upcoming days.

»
3 years ago, # |
  Vote: I like it +8 Vote: I do not like it

Score distribution of qualifier round

Score distribution of subtasks and previous years here. Source files and code here.

»
3 years ago, # |
Rev. 3   Vote: I like it +8 Vote: I do not like it

I made a GitHub repository of solutions scoring more than 5.7M in total (at the moment I write this message)

Input Score at end of contest Score after contest
A — An example 33 33
B — Better start small 897157 1003496
C — Collaboration 228971 242898
D — Dense schedule 251751 2178519
E — Exceptional skills 1640416 1648976
F — Find great mentors 635791 866644
Total 3654119 5940566
Rank 31st 1st