TopCoder SAM 632 DIV2, topcoderdiv2
250: simple question
class RunningAroundPark {public:int numberOfLap(int N, vector <int> d){ int n=d.size(); int ans=1,last=-1; for(int i=0;i<n;i++) { if(d[i]<=last) { ans++; last=d[i]; } else last=d[i]; } return ans;}};
500: Find the rule, simple question
class PotentialGeometricSequence {public:int numberOfSubsequences(vector <int> d){ int n=d.size(); if(n==1) return 1; int ans=0,last=1,slope=d[1]-d[0]; for(int i=2;i<n;i++) { int newslope=d[i]-d[i-1]; if(newslope==slope) { last++; } else { last++; int jia=(last+1)*last/2; if(ans) jia--; ans+=jia; last=1; slope=newslope; } } last++; int jia=(last+1)*last/2; if(ans) jia--; ans+=jia; return ans;}};
1000: backpack
typedef long long int LL;const LL mod=1000000007LL;class GoodSubset {public:int numberOfSubsets(int goodValue, vector <int> d){ int n=d.size(); map<LL,LL> mp; map<LL,LL>::reverse_iterator it; mp[1]=1; for(int i=0;i<n;i++) { for(it=mp.rbegin();it!=mp.rend();it++) { LL t=it->first*d[i]; if(goodValue%t==0) { mp[t]=(mp[t]+it->second)%mod; } } } mp[1]--; return mp[goodValue];}};