首页 > 代码库 > Topcoder 酱油记

Topcoder 酱油记

  SRM 632 Div.2 (58/688):

  这场是除了我第一场之外最简单的一场了,前两道太简单,一下就秒了。最后一题复杂度很微妙,感觉深搜会超时,结果貌似没超...看了一下别人的代码,觉得那些用map的人的代码很好,也学着写了一下。现在感觉map真是太有用了。

 1 // BEGIN CUT HERE 2  3 // END CUT HERE 4 #line 5 "GoodSubset.cpp" 5  6 #include <string> 7 #include <vector> 8 #include <map> 9 #include <iostream>10 using namespace std;11 typedef long long LL;12 #define foreach(it,v) for(__typeof((v).rbegin()) it=(v).rbegin();it!=(v).rend();it++)13 const int size = 50001;14 15 map<int, int> ans;16 class GoodSubset {17     public:18     int numberOfSubsets(int goodValue, vector <int> d) {19         for (int i = 0; i < d.size(); i++)20         {21             foreach(it, ans)22             {23                 LL y = it->first;24                 if (y * d[i] >goodValue) continue;25                 ans[y * d[i]] = (ans[y * d[i]] + it->second) % 1000000007ll;26             }27             ans[d[i]]++;28         }29         return ans[goodValue];30     }31 };
1000

 

Topcoder 酱油记