
算法笔记
关切得大神
这个作者很懒,什么都没留下…
展开
-
算法笔记BFS篇:问题 E: 【宽搜入门】巧妙取量
#include <cstdio> #include<math.h> #include<queue> using namespace std; //这道题我的思路就是,怎么体现广度搜索的话,算是把第一种情况能分成的情况全都罗列出来 //这算是第一层,然后把第一层全都放到队列中,并且他们的步数是step,然后再开始判断从第一层出来的第二层, //操作最难的还是...原创 2020-04-14 16:26:21 · 275 阅读 · 0 评论 -
算法笔记BFS篇:【宽搜入门】8数码难题
说真的,这道题我不会写。。。 题解: 看了网上挺多文章,自己也琢磨挺久的,终于在深夜搞定了。 关键思想:用map实现映射 参考别人的博客: 一、状态如何表示? 1.每个状态都用3*3的数组表示,但是BFS中需要入队出队,比较麻烦而且空间占用较大 2.状态压缩,采用一个整数保存状态的数字序列,例如状态1表示为283104765,状态2表示为203184765 二、如何判重? 1.如果空间允许,开...转载 2020-04-14 12:37:42 · 208 阅读 · 0 评论 -
算法笔记BFS篇:问题 B: DFS or BFS?
我的代码其实是有一丢丢小问题的(我在备注里也写了),我也没改,不过大致思路是正确的。 #include <cstdio> #include<math.h> #include<queue> using namespace std; //对于这道题,是需要有一个方法来更新地图的,也就是每选一部,就更新一次 //然后对于主函数就是,进行各个方向的判断,这道题dfs...原创 2020-04-14 10:04:34 · 354 阅读 · 0 评论 -
算法笔记DFS篇:问题 E: 【递归入门】出栈序列统计
#include <cstdio> #include<math.h> //按照这个提示做一个深度遍历,也就是判断出栈的数字,是否等于n如果是的话,那就sun++ //然后对两种情况 一个是出栈,一个是入栈进行对应的操作,我的想法是dfs有两个参数 一个是进栈,一个是出栈 int res,n; void DFS(int in,int out){ //分别代表进栈...原创 2020-04-13 17:01:05 · 287 阅读 · 0 评论 -
算法笔记DFS篇:问题 C: 【递归入门】组合+判断素数
#include <cstdio> #include<math.h> //这题和之前的那一题差不多,在五个里面选择三个,然后判断是不是素数,再遍历全部的 int n,m,sum; int ans[50],temp[50]; //先写一个方法来判断是不是素数 bool is_sushu(int x){ if(x<=1) return fal...原创 2020-04-13 16:37:24 · 318 阅读 · 0 评论 -
算法笔记DFS篇:问题 B: 【递归入门】组合的输出
#include <cstdio> int n,k,p[22]; void Dfs(int index,int nowk) { if(nowk==k) { for(int i=1;i<k;++i) printf("%d ",p[i]); printf("%d\n",p[k]); return ; } if(index>n||nowk>k)...原创 2020-04-13 14:33:08 · 245 阅读 · 0 评论 -
算法笔记DFS篇:问题 A: 【递归入门】全排列
问题描述 输入和输出: 代码如下: #include<string> #include<iostream> #include<algorithm> #include<stdio.h> using namespace std; //这道题算是dfs的入门,首先对于输入的一个值 然后判断输入的这个值是第几位,如果是第n位的话,就直接输出 //如果不...原创 2020-04-13 13:42:12 · 178 阅读 · 0 评论