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
时间: 2024-12-21 19:33:14