自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 八数码之双广解决方法

从起始状态和末尾状态分别进行bfs,每次从队列节点少的队列进行遍历,当两个队列重合的时候就是找到答案的时候。#include<iostream> using namespace std; #define SWAP(a, b) {char t = a; a = b; b = t;} co...

2016-02-27 21:07:46

阅读数 230

评论数 0

转载 双向广度优先搜索(介绍)

双向广度优先搜索   广度优先搜索遵循从初始结点开始一层层扩展直到找到目标结点的搜索规则,它只能较好地解决状态不是太多的情况,承受力很有限。如果扩展结点较多,而目标结点又处在较深层,采用前文叙述的广度搜索解题,搜索量巨大是可想而知的,往往就会出现内存空间不够用的情况。双向搜索和A算法对广度优...

2016-02-26 20:24:34

阅读数 196

评论数 0

原创 hdu 1239 Calling Extraterrestrial Intelligence Again

http://acm.hdu.edu.cn/showproblem.php?pid=1239 一道水题,只要遍历找出所有的素数,应为a,b都不大,所以直接穷举法就可以过了。#include<iostream> using namespace std; int m, a, b,l; i...

2016-02-26 14:11:53

阅读数 184

评论数 0

原创 算法竞赛入门经典读书笔记——二叉树

数组的方式很简单,就是从根节点开始1,2,3依次标号,左节点是 父节点*2,右节点是 父节点*2+1。这种方法的缺点就是需要大量的空间保存数组(包括很多空节点)。例如树共有n层,则需要长度为2^n-1的数组。还有一种方式就是利用链表的方式,具体实现方法在代码注释里都很清楚。#include<...

2016-02-25 20:50:24

阅读数 226

评论数 0

原创 hdu 1238 Substrings (最长相同连续子序列)

http://acm.hdu.edu.cn/showproblem.php?pid=1238求几个序列的最长相同子序列,这道题本来一直在想怎么用dfs方法解决,后来看了大牛的结题思路,才明白字符串的长度才100,穷举也可以过。 只要先找到最短的子序列,遍历出一个子序列,把它的顺逆序列分别保存到s...

2016-02-25 15:14:24

阅读数 323

评论数 0

原创 hdu1253 胜利大逃亡(三维bfs索搜)

http://acm.hdu.edu.cn/showproblem.php?pid=1253第一次做做三维的,思路跟二维的没有区别。这道题目第一次出现Memory Limit Exceeded 这种问题,找了很长时间才发现应该是先判断在存入,可以省很多内存。代码:#include<iostr...

2016-02-24 13:55:41

阅读数 205

评论数 0

原创 hdu 1242 Rescue(A*索搜)

http://acm.hdu.edu.cn/showproblem.php?pid=1242 题意是从r找到a,路过.时间+1,路过x时间+2,#围墙,求最短的时间。 用a[n][m]保存位置,围墙为-1,.为1,x为2。用A*索搜计算出每一步的f值,在通过优先队列f最小的开始出队列,直到找到...

2016-02-23 11:14:06

阅读数 248

评论数 0

原创 hdu1415和poj 1415 Jugs

http://acm.hdu.edu.cn/showproblem.php?pid=1415这个hdu的题目有问题,应该是把b的水变为t,第一次wr了,看第二个例子就可以看出是把b的水变为t。浙江大学oj是正确的。 用bfs遍历,用一个二维数组保存前面的状态和倒水的方式就行,1-6分别代表6种不...

2016-02-22 13:14:24

阅读数 272

评论数 0

原创 过桥问题(dfs)

用四个数表示四个物体,0,和1代表两岸,所以问题是(0,0,0,0)转换成(1,1,1,1),再用dfs就可以解决。#include<iostream> using namespace std; int s[16]; int xu(int a, int b, int c, int d)...

2016-02-21 17:22:54

阅读数 210

评论数 0

原创 hdu 1258和ZJU 1711 Sum It Up(dfs经典索搜)

http://acm.hdu.edu.cn/showproblem.php?pid=1258 我的第一道索搜题,想了半天还是没有办法去除重复的情况,看了别人的结题报告才知道这么简单,就是用一个变量保存上一次的节点就行。#include <cstdio> #include <st...

2016-02-20 14:51:06

阅读数 476

评论数 0

原创 hdu 2191(多重背包)

http://acm.hdu.edu.cn/showproblem.php?pid=2191一种转换成普通的01背包,遍历物品的个数。 另一种就是把物品个数用2^k表示,是上一种01背包的优化。代码:#include<iostream> using namespace std; in...

2016-02-18 21:49:12

阅读数 258

评论数 0

原创 HDU 1158(简单的动态规划)

http://acm.hdu.edu.cn/showproblem.php?pid=1158 求员工的工资,雇佣,解雇,工作都要使用相应的钱。 用一个二维的数组利用动态规划来解决问题。dp[i][j]表示第i个月j个员工所需要的最少工资。每个月的员工人数大于最少的人数,小于等于所有的最大人数。...

2016-02-14 19:59:27

阅读数 202

评论数 0

原创 hdu 2037(最简单的贪心算法)

http://acm.hdu.edu.cn/showproblem.php?pid=2037 把队列按照,结束时间从小大到排列。然后依次遍历,如果开始时间大于前面最后的结束时间就是可行方案,并记录结束时间。 代码:#include<iostream> using namespace...

2016-02-11 13:52:02

阅读数 942

评论数 0

原创 HDU1052 Tian Ji (经典贪心算法)

题目: http://acm.hdu.edu.cn/showproblem.php?pid=1052 田忌赛马问题,可以用贪心算法解决。 先把两个的队列从大到小排列。 原先错误的思路: 1、田忌的快马比齐王的快,直接比掉。 2、若快马没有快,就拿田忌最慢的和齐王最快的比较。正确的思路:...

2016-02-10 20:13:20

阅读数 341

评论数 0

原创 hdu 1050 Moving Tables

http://acm.hdu.edu.cn/showproblem.php?pid=1050简单的题目,就是求交叉的路线最多次数。 注意: 房间可能从大到小,也可能从小到大。 1和2属于同一个,2和3也是。。。。等等 #include<iostream> using namespac...

2016-02-08 20:43:53

阅读数 152

评论数 0

原创 hdu 1081 To The Max(矩阵中最大的和)

题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1081题目是求矩阵中存在的最大子矩阵的和。刚开始吧题目理解错了,以为一定包括矩阵的四个角,错了后才发现里面的也可以。后来看了别人的结题报告 - -。这道题就是求连续子序列的,只要把一维度变成二维度就...

2016-02-08 18:46:31

阅读数 270

评论数 0

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