1. 程式人生 > >Codeforces Round #398 (Div. 2)

Codeforces Round #398 (Div. 2)

題意 怎麽辦 codeforce 二分 top 細節 我們 簡單 oot

這套題。。難度不大,但是普遍都挺惡心的,還容易看錯題意

A模擬

B貪心(別像我一樣看錯題目),註意細節較多,思路要清晰

  If the receptionist would stop working within t minutes, he stops serving visitors (other than the one he already serves).

C貪心 發現可以刪掉的兩個點若一個是另一個的祖先,顯然是一樣的(除非average=0,需從底向上切)。註意審題,root不能被切

D不太難的二分 註意一下細節,judge好像容易寫錯,還是要思路清晰

E略難的heap

首先發現只能一個個處理,否則就有後效性。

貪心地想一想:

1.若剩下的coins足夠,直接用

2.若coins不夠(1)被迫找零 (2)是否以前某一次的決策不夠優秀,可以“後悔”以得到一些coins

how to “後悔”?

一個很有用的性質:兩種簡單決策coins差100

如果得到coins後仍然不夠怎麽辦?——發現不會出現此情況,且是否“後悔”對決策後的coins無任何影響!!!

那麽一開始我們關心coins數和ans兩個變量,現在只剩下一個,顯然可以大大簡化題目。

用堆維護所有花掉coins的那些天若“後悔”需對ans產生多少影響,每次和當前天比較即可。

處理起來也要註意細節

Codeforces Round #398 (Div. 2)