<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont

本文涉及的产品
转发路由器TR,750小时连接 100GB跨地域
简介: [cpp] view plain copy print? #include  #include  #include  #include  using namespace...
[cpp]  view plain  copy

 print?


  1. #include<cstdio>  
  2. #include<cstring>  
  3. #include<queue>  
  4. #include<algorithm>  
  5. using namespace std;  
  6. const int maxn=100;  
  7. bool vst[maxn][maxn]; // 访问标记  
  8. int dir[4][2]={0,1,0,-1,1,0,-1,0}; // 方向向量  
  9.   
  10. struct State // BFS 队列中的状态数据结构  
  11. {  
  12.     int x,y; // 坐标位置  
  13.     int Step_Counter; // 搜索步数统计器  
  14. };  
  15.   
  16. State a[maxn];  
  17.   
  18. boolCheckState(State s) // 约束条件检验  
  19. {  
  20.     if(!vst[s.x][s.y] && …) // 满足条件         
  21.         return 1;  
  22.     else // 约束条件冲突  
  23.     return 0;  
  24. }  
  25.   
  26. void bfs(State st)  
  27. {  
  28.     queue <State> q; // BFS 队列  
  29.     State now,next; // 定义2 个状态,当前和下一个  
  30.     st.Step_Counter=0; // 计数器清零  
  31.     q.push(st); // 入队     
  32.     vst[st.x][st.y]=1; // 访问标记  
  33.     while(!q.empty())  
  34.     {  
  35.         now=q.front(); // 取队首元素进行扩展  
  36.         if(now==G) // 出现目标态,此时为Step_Counter 的最小值,可以退出即可  
  37.         {  
  38.             …… // 做相关处理  
  39.             return;  
  40.         }  
  41.     for(int i=0;i<4;i++)  
  42.     {  
  43.         next.x=now.x+dir[i][0]; // 按照规则生成   下一个状态  
  44.         next.y=now.y+dir[i][1];  
  45.         next.Step_Counter=now.Step_Counter+1; // 计数器加1  
  46.         if(CheckState(next)) // 如果状态满足约束条件则入队  
  47.         {  
  48.             q.push(next);  
  49.             vst[next.x][next.y]=1; //访问标记  
  50.         }  
  51.     }  
  52.     q.pop(); // 队首元素出队  
  53.     }  
  54.  return;  
  55. }  
  56.   
  57. int main()  
  58. {  
  59. ……  
  60.  return 0;  
  61. }  



[cpp]  view plain  copy

 print?


  1. DFS:  
  2. /* 
  3. 该DFS 框架以2D 坐标范围为例,来体现DFS 算法的实现思想。 
  4. */  
  5. #include<cstdio>  
  6. #include<cstring>  
  7. #include<cstdlib>  
  8. using namespace std;  
  9. const int maxn=100;  
  10. bool vst[maxn][maxn]; // 访问标记  
  11. int map[maxn][maxn]; // 坐标范围  
  12. int dir[4][2]={0,1,0,-1,1,0,-1,0}; // 方向向量,(x,y)周围的四个方向  
  13.   
  14. bool CheckEdge(int x,int y) // 边界条件和约束条件的判断  
  15. {  
  16.     if(!vst[x][y] && …) // 满足条件  
  17.         return 1;  
  18.     else // 与约束条件冲突  
  19.         return 0;  
  20. }  
  21.   
  22. void dfs(int x,int y)  
  23. {  
  24.     vst[x][y]=1; // 标记该节点被访问过  
  25.     if(map[x][y]==G) // 出现目标态G  
  26.         {  
  27.         …… // 做相应处理  
  28.         return;  
  29.         }  
  30.     for(int i=0;i<4;i++)  
  31.     {  
  32.         if(CheckEdge(x+dir[i][0],y+dir[i][1])) // 按照规则生成下一个节点  
  33.             dfs(x+dir[i][0],y+dir[i][1]);  
  34.     }  
  35.     return// 没有下层搜索节点,回溯  
  36. }  
  37. int main()  
  38. {  
  39. ……  
  40. return 0;  
  41. }  

目录
相关文章
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Hbase依赖的datanode日志中如果出现如下报错信息:DataXceiverjava.io.EOFException: INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in receiveBlock for block  解决办法:Hbase侧配置的dfs.socket.timeout值过小,与DataNode侧配置的 dfs.socket.timeout的配置不一致,将hbase和datanode的该配置调成大并一致。
802 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
PipeMapRed.waitOutputThreads(): subprocess failed with code X ,这里code X对应的信息如下:error code 1: Operation not perm...
948 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
 Connection reset by peer的常见原因: 1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭;    如果知道实际连接服务器的并发客户数没有超过服务器的承载量,看下有没有网络流量异常。
862 0
|
Web App开发 存储 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
NoSuchObjectException(message:There is no database named cloudera_manager_metastore_canary_test_db_hive_hivemetastore_df61080e04cd7eb36c4336f71b5a8bc4) at org.
1082 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
service cloudera-scm-agent stop service cloudera-scm-agent stop umount /var/run/cloudera-scm-agent/process umo...
764 0
|
Web App开发 前端开发 数据库
|
Web App开发 前端开发
|
Web App开发 前端开发 关系型数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
如果mysql正在运行,/etc/init.d/mysqld stop 启动mysql(无需输入密码):bin/safe_mysqld –skip-grant-tables & 在bin目录下执行mysql,此时无需输入密...
808 0