SRM 619 Div 2
ARCにせよSRMにせよ、記事書くのがだいぶ遅いのはなんとかなりませんかね。
Level 1 GoodCompanyDivTwo
Brute Forceで解ける問題っぽいです。システムテストで落とされました。
superior[i] = superior[j]でworkType[i] = workType[j]、同じ上司を持ってる二人が
同じ仕事でも多様性はあるらしいです。たぶん。
set使うと楽。set自体初めて利用した。
http://www.cplusplus.com/reference/set/set/
https://sites.google.com/site/cpprefjp/reference/set
http://episteme.wankuma.com/stlprog/container.html#container
Level 2 ChooseTheBestOne
後で解いた。何回か同じような問題を見たことがある。DPで解けるらしいが、DPで解いた訳ではないはず。
class ChooseTheBestOne{ public: int countNumber(int N){ int n = N; vector<int> v; long long t = 1, s = 0; for(int i = 0; i < n; i++) v.push_back(i+1); for(int i = 0; i < n-1; i++){ s += (t*t*t-1) % (int)v.size(); if(s >= (int)v.size()) s -= (int)v.size(); v.erase(v.begin()+s); t++; } return v.back(); }
こんな感じかな。
Level 3 EmployManager
kmjpさんみたいな解法。
どうやって思いつくの?
これすごいと思う。