调石板(动态规划)
跳石板
http://www.nowcoder.com/questionTerminal/4284c8f466814870bae7799a07d49ec8
超时//////////////////// #include<bits/stdc++.h> using namespace std; void NumYue(int N,vector<int>&v){//判断是否是约数 for(int i=2;i<N;i++){ if(N%i==0){ v.push_back(i); } } } int main(){ int N,M; cin>>N>>M; vector<int>dp(2*M,0); dp[N]=0; for(int i=N;i<=M;i++){ vector<int>v; NumYue(i,v); int n=v.size(); for(int j=0;j<n;j++){ if(dp[i+v[j]]){ dp[i+v[j]]=min(dp[i+v[j]],dp[i]+1); }else{ dp[i+v[j]]=dp[i]+1; } } v.clear(); } if(dp[M]==0){ cout<<-1; }else{ cout<<dp[M]; } return 0; }