Интересно как решается эта задача. Спасибо.
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
Интересно как решается эта задача. Спасибо.
Название |
---|
Очевидным жадником вначале избавимся от всех с положительной прибавкой к авторитету. Далее требуется придумать некий порядок людей, в котором их выгодно выкидывать. Это то ли сумма, то ли разность a и b, точно не помню, доказывается методом "если они отсортированы в оптимальном ответе не так, докажем, что можно каких-то двух поменять, не ухудшить ответ и уменьшить количество инверсий".
После этого надо пустить динамику: текущий человек и текущий остаток авторитета, возвращается лучший ответ, два перехода. Получается много состояний, чтобы уменьшить их количество, надо поменять местами результат и один из параметров.
Была точно такая же задача "Яма" на ROI. В яме были участники с определённым ростом и длиной рук (могут ухватиться за край ямы), требовалось достать как можно больше.
Ага, причем задача за N*log(N) решается при желании.
Надеюсь, задача не с какого-то действующего контеста?
Для начала, кэп, что из тех, у кого b >= 0, можно выбирать любого подходящего участника и агитировать его. Дальше, у нас остались только те, у кого b < 0 (остальные с b >= 0 недостижимы и отбрасываются). Их, видимо, надо выбирать в порядке уменьшения a+b.
Cпасибо, пытаюсь писать решение. Задача не из какого-то действующего контеста :)
UPD:Сделал как сказал yeputons , менял местами результат и рейтинг. Вот код !!!