自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 STL和基本数据结构

STL包含:容器,迭代器,空间配置器,配接器,算法,仿函数1、vector动态数组,从末尾能快速插入和删除,直接访问任何元素。但是在中间进行插入和删除会造成内存块的复制。如果数组后面的内存空间不够需要重新申请一块足够大的内存。所以时间紧张,所以竞赛的时候就直接用vector吧。题目 HDU 4841“圆桌问题”题目分析:可以用vector模拟动态变化的圆桌,赶走n个人下留下的都是好人。但是呢,通过看大佬的博客知道了还有递归可以解决。代码:递归,公式看代码吧//递归 old=(new

2021-01-28 15:15:31 178

原创 全排列问题

1、STL的next_permutation()注意要先用sort()排序得到最小的排列,优点:能够从小到大进行排序2、用递归求全排列,容易晕。。。多练练就好了让第一个数字不同,得到n个数列,faction:把第一个和后面的每个数进行交换 上面每个数中,去掉第一个数,得到n-1个数列,faction:与上一步类似 重复,直到用完全部数字举个最简单的栗子,打印n个数的全排列:STL方法:#include<bits/stdc++.h>using namespace std;

2021-01-28 14:02:57 125

原创 迭代加深搜索

IDDFS 题目 LOJ 10022“埃及分数”题目链接https://loj.ac/p/10022迭代加深,字面意思。适用于搜索树很深而且很宽的题,如果直接使用DFS会陷入递归无法返回;如果直接用BFS,队列可能爆炸。具体操作模板:1、先设定搜索深度为1,用DFS搜索到第1层即停止2、如果没有找到答案,再设定深度为2,用DFS搜索2层即停止3、继续设定深度为3,4,5巴拉巴拉巴拉,逐步扩大DFS的搜索深度,直到找到答案每一层的广度上采用了DFS的搜索思想,在具体变成实现上是DF

2021-01-28 11:05:17 232

原创 IDA*

题目 poj 3134题目链接https://vjudge.net/problem/POJ-3134前言:说一下IDA*是对迭代加深搜索的优化,加一个估价函数,预测出当前DFS的状态不再搜索下去,就可以直接返回,提高了效率。简单说,就是在IDDFS过程中利用估价函数进行剪枝操作。题目分析:翻译:等价于从数字1开始,用加减法,最少算多少次才能得到n。(这样清楚多了吧!)难点:如果每一步进行搜索,新值的数量增长非常快。直接DFS深度可能有1000很大概率就溢出了,如果用BFS也可能超出队

2021-01-27 16:45:03 99

原创 N皇后问题经典DFS

题目 HDU 2553“N皇后问题”题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2553前言:通过这个题学习到了剪枝。暴力破解会超时啊,就很拿人。DFS的难点在于扩展子节点的时候如何构造停止递归并返回的条件,就要用到剪枝函数。依然举个例子,分析一下4皇后怎么搞。思路如下:从第一行开始放皇后:第一行从左到右有4种方案,产生4个结点;第2行,排除同列和斜线,拓展新的结点,注意不用排除同行,因为第二行和第一行已经是不同行的了。继续拓展第三行和

2021-01-27 14:42:00 254 2

原创 DFS模板题

题目HDU1312题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1312在这里说一下DFS的思路吧,DFS就是递归,设num是到达砖块的数量,算法过程描述如下:在出书位置令num=1,标记这个位置已经走过 左,上,右,下四个方向,按顺时针顺序选一个能走的方向,走一步 在新的位置num++,标记这个位置已经走过 继续前进,如果无路可走,回退到上一步,换个方向再走 继续以上过程,直到结束诶图像传不上来,不传了,挺简单的,我这种笨比都能懂A

2021-01-27 10:03:37 213 1

原创 双向广搜

双向广搜练习 题目 hdu1401"Solotaire"原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1401双向广搜适用于知道起点和终点,并且正向和逆向都能进行搜索。原理:同时在起点和终点向对方做BFS,两个石头激起的波浪向对方扩散,将在中间的某个位置遇到,此时就找到了最优路径。题目大意:有一个8*8的棋牌,上面有4颗棋子,棋子可以上下左右启动。给定一个初始状态和一个目标状态,问能否在8步之内到达。题目分析:已经确定起点和终点,各自搜索.

2021-01-26 15:59:33 151

原创 八数码问题

八数码问题思路前言:备战蓝桥杯遇到一个八数码问题,整理一下思路。第一次写,不太好,见谅。BFS是由近到远的扩散过程,解决最短距离问题。搜索的可以是数,也可以是状态,八数码就是状态。从初始状态出发,每次转移都逐步逼近最终状态,每转移一次步数加一,达到目标时,经过的步数就是最短路径。举个例子:初始状态1 2 3 8 4 7 6 5 最终状态1 3 8 2 4 7 6 5 ...

2021-01-26 14:28:52 387 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除