摘要: 广搜,挨个遍历,记录起点和终点,下一个的起点等于终点+1 #include<bits/stdc++.h>using namespace std;int xx[4]={0,0,1,-1},yy[4]={1,-1,0,0};int kt,s=0,kts,ktts;char c;int i,j,n,a[1 阅读全文
posted @ 2022-08-25 17:20 TheMagician 阅读(112) 评论(0) 推荐(0)
摘要: 根据题意,我们可以从0,0遍历,将最外围圈设为1,将所有0设为1 最后相加 围成的圈外一定和边相靠 #include<bits/stdc++.h>using namespace std;int i,j,a[20][20],s=0;char c;void pd(int x,int y){ if(x+1 阅读全文
posted @ 2022-08-24 17:23 TheMagician 阅读(138) 评论(0) 推荐(0)
摘要: 将所有的0替换为2,从边缘进行搜索,把圈外的2都换成0 外圈的0一定和边相邻 扩大边界,以便于将边界上单独的0标记。 #include<bits/stdc++.h>using namespace std;int n,i,j,a[50][50],ii,jj,bj,f,bjj[50];void pd(i 阅读全文
posted @ 2022-08-24 17:05 TheMagician 阅读(69) 评论(0) 推荐(0)
摘要: 用字符分离,再从头遍历,若不是0,则s+1,函数,并去其他方向看是否有不是0的数,若有,则变0,函数,若没有,退出函数,继续遍历 #include<bits/stdc++.h>using namespace std;char a[200][200]; int i,j;int n,m,s=0;int 阅读全文
posted @ 2022-08-24 11:42 TheMagician 阅读(146) 评论(0) 推荐(0)
摘要: 用两个变量,一个步数,一个下一步步数的总数,广搜 注意:数组开大 #include<bits/stdc++.h>using namespace std;int dx[10]={-2,-2,-1,-1,2,2,1,1};int dy[10]={1,-1,2,-2,1,-1,2,-2};long lon 阅读全文
posted @ 2022-08-24 11:31 TheMagician 阅读(51) 评论(0) 推荐(0)
摘要: 所谓深搜(也叫回溯法)就是采用的是“一直往下走,走不通了就掉头,换一条路再往下走” 总结来说就是递归的枚举 一直往深处走,直到找到解或者走不下去为止 主要步骤:1.构建一个递归函数,函数参数应该最起码包括题目需求使用的参数2.找到边界,递归函数里首先列出递归结束的条件,即满足要求或者超出范围3.接着 阅读全文
posted @ 2022-08-23 21:02 TheMagician 阅读(142) 评论(0) 推荐(0)
摘要: a[i][j] 表示 j 分成 i个非空的数的方案数。 显然 j<i 时 a[i][j]=0 , i=j 时 a[i][j]=1; 方案数为 a[i][j-i] (此时 j 必须大于 i) 所以,状态转移方程为: a[i][j]=a[i-1][j-1]+a[i][i-j] #include<cstd 阅读全文
posted @ 2022-08-23 20:55 TheMagician 阅读(42) 评论(0) 推荐(0)
摘要: 函数判断是否相邻:直径与距离 在进行深搜,标记路过的,若不是且相邻,再调用 注意:第一个和底层需独立判断 #include<bits/stdc++.h>using namespace std;long long t,n,h,r,i,j,b[1005],falg,bj;struct ww{ long 阅读全文
posted @ 2022-08-23 17:20 TheMagician 阅读(27) 评论(0) 推荐(0)
摘要: 1、查找第一行,从左往右查找,发现合适的位置,放下第一个皇后 2、查找第二行,从左往右查找,发现合适的位置,放下第二个皇后 3、查找第三行,从左往右查找,发现合适的位置,放下第三个皇后 假设要在m行k列放置一个皇后,只需要查看第一行到m-1行就行。如果k列已经存在皇后,那么m行k列这个位置就不适合了 阅读全文
posted @ 2022-08-23 14:18 TheMagician 阅读(37) 评论(0) 推荐(0)
摘要: 先定义两个数组,一个是用来存放解的,一个是用来标记该数是否用过。 先判断格子是否填满了,如果填满,则输出。 如果没有填满,则开始循环,在循环中先判断当前填的数是否用过,如果没有,则填入,搜索下一格。 #include<bits/stdc++.h>using namespace std;int a[1 阅读全文
posted @ 2022-08-23 09:55 TheMagician 阅读(22) 评论(0) 推荐(0)