SRM 499 div1 easy:ColorfulRabbits
SRM練習会に参加。結果はeasyとmed通してgood job!という感じでした。なんか昔のSRMは今より簡単な気がするしhardにトライしてみるのもありかもしれないです。
問題:TopCoder Statistics - Problem Statement
解法:問題の性質上,同じ数を主張しているウサギは同色であると解釈できます。ただし,example 2のように,2と主張しているウサギが7匹いる場合は,同色のウサギが3匹であると主張しているのに7匹が同じグループになるというおかしな状況になるので,グループ数を増やさないと矛盾します。そこら辺に注意して実装すれば良いです。
以下ソースコード
class ColorfulRabbits { public: int getMinimum(vector <int> replies) { map<int, int> mm; for (auto el : replies) { mm[el]++; } int ans = 0; for (auto el : mm) { int tmp = el.first+1; int tmp2 = el.second; while (tmp2 > tmp) { ans += tmp; tmp2 -= tmp; } ans += tmp; } return ans; } };