首页 > 代码库 > TopCoder SAM 632 DIV2
TopCoder SAM 632 DIV2
250:简单题
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:找规律,简单题
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: 背包
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]; } };
TopCoder SAM 632 DIV2
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。