*[topcoder]IncrementingSequence
生活随笔
收集整理的這篇文章主要介紹了
*[topcoder]IncrementingSequence
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://community.topcoder.com/stat?c=problem_statement&pm=12107
此題想了半天,當時瞥到了Greedy,所以就想著貪心,最后的方法又紙上畫了一下應該是對的。就是排序后依次看是不是滿足要求。證明就是如果對數字X,有a和b都能夠通過增加k的倍數步得到X,那么使用小的a自然更好,因為b有更大機會為剩下的出力。
#include <string> #include <vector> #include <algorithm> using namespace std;class IncrementingSequence { public:string canItBeDone(int k, vector <int> A){sort(A.begin(), A.end());vector<bool> used(A.size());for (int i = 1; i <= A.size(); i++){for (int j = 0; j < A.size(); j++){if (used[j])continue;if (A[j] > i)return "IMPOSSIBLE";if ((A[j] - i) % k == 0){used[j] = true;break;}}}return "POSSIBLE";} };
轉載于:https://www.cnblogs.com/lautsie/p/3886445.html
總結
以上是生活随笔為你收集整理的*[topcoder]IncrementingSequence的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SP2010开发和VS2010专家食谱-
- 下一篇: MySQL INFORMATION_SC