标签:scan amp false pid span std lan main bsp
题目:HDU2717
题解:居然一遍就过了!!开心!!大致上跟那个跳棋的差不多,这个比那个简单只有一维数组。所以只要把走路的规则改一下就行了
代码:
1 #include<cstdio> 2 #include<queue> 3 #include<cstring> 4 #define maxn 100005 5 using namespace std; 6 7 int n,k,m,mm,dis[maxn]; 8 bool f[maxn]; 9 10 void bfs() 11 { 12 queue<int> q; 13 q.push(n); 14 memset(f,true,sizeof(f)); 15 memset(dis,0,sizeof(dis)); 16 f[n]=false; 17 18 while(!q.empty()) 19 { 20 m=q.front(); 21 q.pop(); 22 23 if(m==k) break; 24 25 for(int i=-1;i==-1||i==1;i=i+2) 26 { 27 mm=m+i; 28 if(mm>=0&&mm<=100000&&f[mm]) 29 { 30 q.push(mm); 31 f[mm]=false; 32 dis[mm]=dis[m]+1; 33 } 34 } 35 36 mm=2*m; 37 if(mm>=0&&mm<=100000&&f[mm]) 38 { 39 q.push(mm); 40 f[mm]=false; 41 dis[mm]=dis[m]+1; 42 } 43 44 45 } 46 } 47 48 int main() 49 { 50 while(scanf("%d%d",&n,&k)!=EOF) 51 { 52 bfs(); 53 printf("%d\n",dis[k]); 54 } 55 56 return 0; 57 }
标签:scan amp false pid span std lan main bsp
原文地址:http://www.cnblogs.com/RocSAMA/p/6533713.html