搜索
野指针呀
嗯哼,奋斗吧少年。
展开
-
方格分割-第八届蓝桥杯c/c++组
方格分割6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。思路:这个题很有意思。我们要找的是对称的图形,这个题就可以不必找到18个格子和剩下18个格子对称,只需要找到对称的边线就行,相当于是找横纵坐标的交点,而不是格子。...原创 2018-03-29 09:19:00 · 278 阅读 · 0 评论 -
Flood-it! poj4007 (IDA*)
题目链接:https://cn.vjudge.net/problem/POJ-4007题解: 将与左上角相连且颜色相同的格子设为A类格子;与A类格子相连的格子,即颜色为A类格子下一步可变为的颜色的格子设为B类格子;将A类格子标记为1,表示当前状态颜色已改变的格子,将B类格子标记为2,表示当前状态颜色可改变的格子。 MHD( )(曼哈顿距离):此题的曼哈顿距离求的是除了A...原创 2018-04-23 10:16:17 · 289 阅读 · 0 评论 -
POJ-1077 Eight (三种解法:IDA*、A*、bfs()+康托展开)
题目链接:https://cn.vjudge.net/problem/POJ-1077(根据我自己的理解写的,有错误的地方希望大家可以指正一下,非常感谢!)IDA*解法:什么是IDA*算法? IDA*是基于深搜的基础上的一种优化算法。 对于这个题来说,由于深搜算出最佳方案需要耗费很多的时间,所以我们就从假定最优解开始算起,若搜索不出来这个结果,就将假定最优解加一再搜一次,直到搜到与当前...原创 2018-04-23 11:06:16 · 798 阅读 · 0 评论 -
IDA*个人总结
这几天在整理搜索模板,做了几个IDA*的题,然后来总结一下。关于IDA*: IDA*是基于深搜基础上的一种优化方法。深搜求最优解问题一般情况下则需要将所有的解求出,再找到最优解,而IDA*则是先假定一个最优解,用此假定最优解剪枝,若当前深度+当前状态的最优解>假定最优解则不可行,若当前搜索中找不到结果则增加假定最优解,继续进行搜索。关于最优解: 当前状态最优解和假...原创 2018-04-23 11:12:43 · 235 阅读 · 0 评论 -
胜利大逃亡(续) hdu-1429 (bfs状态压缩)
题目链接:胜利大逃亡(续)题解: 整体思路: 找到钥匙后就存起来,找到门时判断当前所需钥匙是否已经找到,若找到,当前门可走,否则,不可走。直到找到出口为止。 具体思路: 用二进制来存钥匙,比如说:111,代表1、2、3钥匙都找到了,而100表示只有3钥匙。那应该如何储存呢。当找到x钥匙时,用sta表示当前状态,则sta=1<< (x-1),也就是...原创 2018-05-01 20:57:17 · 205 阅读 · 0 评论 -
Saving Tang Monk -HDU - 5025(bfs状态压缩)
题目链接:https://cn.vjudge.net/problem/HDU-5025题解: 注意: 0.走一步需要一分钟,杀死蛇也需要一分钟的时间,很明显需要用优先队列来做。 1.当某条蛇死过之后,下次再走到这条蛇的位置不用再耗费一分钟的时间打死它了。 2.想要捡起x钥匙,必须已经捡到过1~x-1钥匙。 3.想救出师傅必须找到所有的钥...原创 2018-05-02 20:15:40 · 166 阅读 · 0 评论 -
广搜-状态压缩
(以下是个人理解,欢迎指正!) 这几天做了几个状态压缩的题,做一下笔记。 求最短路径或最短时间,即求最优解时,若其中某些条件的状态不好记录,可以试试状态压缩的思想。 比如 poj-1324 Holedox Moving , 这个题每走一步都要记录当前蛇的状态,需要判断头是否会咬到自己的身体,以及判断当前位置是否以同样的状态访问过,刚开始没接...原创 2018-05-02 21:21:01 · 301 阅读 · 1 评论 -
Flip Game (深搜)
Flip GameTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 25323 Accepted: 10927DescriptionFlip game is played on a rectangular 4x4 field with two-sided pieces placed on each of its 16 squares...原创 2018-05-05 19:01:17 · 2976 阅读 · 2 评论 -
等差素数列-第八届蓝桥杯c/c++B组
等差素数列2,3,5,7,11,13,....是素数序列。类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。上边的数列公差为30,长度为6。2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。这是数论领域一项惊人的成果!有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:长度为10的等差素数列,其公差最小值是多少?注意:需要提交的是一个整...原创 2018-03-28 18:14:14 · 379 阅读 · 0 评论 -
L2-016. 愿天下有情人都是失散多年的兄妹(深搜)
L2-016. 愿天下有情人都是失散多年的兄妹 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 呵呵。大家都知道五服以内不得通婚,...原创 2018-03-27 16:15:45 · 374 阅读 · 0 评论 -
H - Patrol Robot 搜索
H - Patrol RobotA robot has to patrol around a rectangular area which is in a form of m × n grid (m rows and ncolumns). The rows are labeled from 1 to m. The columns are labeled from 1 to n. A cell原创 2017-07-14 16:26:13 · 407 阅读 · 0 评论 -
Flip Game 深搜
A - Flip Game POJ - 1753 dA - Flip Game POJ - 1753 1.思路:此题只有四行四列,可用深搜来做。有一个思想误区,在从(0,0)开始遍历后,每路过一个可翻的点时,都有翻或不翻两个选择,这些不同选择提供了多种不同的方法,(如果数据可以找到)这些方法中一定有正确的,再将最少的结果输出。(如果数据找不到)输出不可能即可。2原创 2017-07-14 14:21:44 · 472 阅读 · 0 评论 -
Red and Black (广搜 队列)
/*水题: 思路:四个方向,找到就加一。*/#include#includeusing namespace std;int n,m,sum,c[4][2]={1,0,0,1,-1,0,0,-1};char map[101][101];struct yun{ int x,y;};int bfs(int x,int y){原创 2017-05-27 21:03:36 · 610 阅读 · 0 评论 -
Prime Ring Problem(素数环 深搜)
Prime Ring Problem A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles should原创 2017-05-27 20:27:00 · 1026 阅读 · 0 评论 -
Five-In-a-Row CodeForces - 825B
G - Five-In-a-Row CodeForces - 825B 题意:五子棋,在一个10*10的棋盘上下一个棋子,看是否能连成五个。思路:先写一个遍历棋盘的双循环,如果发现不是“O”,就进入深搜,每进入一次将标记数组清零。然后八个方向去找是否能连起来,找到一个就加1,找不到就返回。最后等于5时就输出“YES”,反之,输出“No”。注意:和一般搜索不一样的是遍历的原创 2017-07-20 17:51:25 · 243 阅读 · 0 评论 -
Meteor Shower POJ - 3669 广搜
D - Meteor Shower POJ - 3669 题意:找到一个不会有炸弹的地方。思路:先将地图赋初值为-1,输入一个炸弹的坐标和时间后,就将地图上被炸弹炸过的地方标记为炸弹落下的时间,如果已经被标记过,并且数值不同,这时应标记为时间更小的值。接下来,广搜,找到一个为初值-1的地方即可。代码:#include#include#includeusing原创 2017-07-21 09:27:41 · 290 阅读 · 0 评论 -
Find The Multiple 深搜
A - Find The Multiple POJ - 1426 题意:输入一个数,输出这个数的倍数(只能由0和1组成的数),输出任意一个即可。思路:深搜,只由0和1组成,每次找的时候*10加1或不加1,两种情况。注意:当位数等于19时若还未找到,就要返回,继续寻找。代码:#includeint r;void dfs(unsigned long原创 2017-07-20 08:45:57 · 324 阅读 · 0 评论 -
D - Dogs HDU - 2822 广搜+优先队列
D - Dogs HDU - 2822 solution:题目要求从起点到终点至少需要经过多少个“.”.用广搜遍历时,走到“.”步数才加1,为“x”时不加。这时需要用到优先队列,优先找步数小的。code:#include#include#include#includeusing namespace std;int f[4][2]= {1,0,0,1,-原创 2017-08-04 20:48:07 · 237 阅读 · 0 评论 -
2012.B组 奇怪的比赛 (深搜)
奇怪的比赛 某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。每位选手都有一个起步的分数为10分。某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?如果把答对的记为原创 2017-11-25 21:07:01 · 214 阅读 · 0 评论 -
Number Transformation (bfs+素因子)
1141 - Number Transformation PDF (English)StatisticsForumTime Limit: 2 second(s)Memory Limit: 32 MBIn this problem, you are given an integer number s.You can transform any integer number A to ano...原创 2018-05-05 19:12:39 · 312 阅读 · 0 评论