dfs
文章平均质量分 54
Jeromiewn
不可以!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu1035
dps简单模拟 如果能出去,输出步数 如果成环,输出成环前和环的步数 #include #include using namespace std; char mp[1005][1005]; int d[4][2]={1,0,0,1,0,-1,-1,0},k,a,b,c,flag[1005][1005]; void dps(int x,int y) { if(xa||y>b)原创 2016-09-02 21:25:19 · 876 阅读 · 0 评论 -
poj 1011 Sticks(经典深搜dfs+剪枝)
1.枚举所有可能的所组成的长度 2.深搜 两个状态(a,b) a:没有用过的棍的个数 b:当前要组成的棍还需要的长度 初始状态:(n,i) 终止状态:(0,0) 3.剪枝 未剪枝的dfs: bool dfs(int a,int b) { if(a==0&&b==0) { return true; } if(b==原创 2016-10-18 17:33:30 · 759 阅读 · 0 评论 -
poj 3009(dfs基础题)
题目大意要求把一个冰壶从起点“2”用最少的步数移动到终点“3”,其中0为移动区域,1为石头区域,冰壶一旦想着某个方向运动就不会停止,也不会改变方向(想想冰壶在冰上滑动),除非冰壶撞到石头1或者到达终点3,冰壶撞到石头后,冰壶会停在石头前面,此时(静止状态)才允许改变冰壶的运动方向,而该块石头会破裂,石头所在的区域由1变为0. 也就是说,冰壶撞到石头后,并不会取代石头的位置。终点是一个摩擦力很大的区原创 2016-11-12 16:10:43 · 736 阅读 · 0 评论 -
hdu 1241(dfs基础题)
nm的图有多少连通块 把每个@遍历一遍,bfs八个方向搜一下,搜过的标记为* #include #include using namespace std; char a[105][105]; int n,m; int ans; void init() { ans=0; for(int i=0;i<n;i++) { for(int j=0;j<m;j+原创 2016-11-12 20:10:05 · 436 阅读 · 0 评论 -
hdu 1016(dfs基础)
题意:输入一个数n,把1到n的自然数放到一个环里,保证相邻的两个数的和是素数。(1和n 思路:素数打表+深搜 #include #include #include #include using namespace std; int a[25],b[45]= {0},n; int isprime[40]= {0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,原创 2016-11-12 20:15:40 · 515 阅读 · 0 评论
分享