随笔分类 - 搜搜搜不搜不是人
摘要:宝宝好激动、、、、A个题越来越不易了、、 题意:很经典的小游戏,给你两个杯子和足够的水,问你能不能用这两个杯子量出题目中要求的水的容积;哈哈,有了这个程序以后玩这种小游戏就可以快速找到最佳方案啦啦啦啦 方法,bfs搜索,搜索的对象是两个杯子的状态;每次只能进行一次操作,共有六种可能,用vis数组标记
阅读全文
摘要:这题意也是醉.简单dfs;对于一个油田"@"来说,上下左右斜上斜下八个方向如果也是"@"的话,就算同一个;那么,就用深搜搜呗..每次找到一个"@",就把所有的跟他相关联的全部标记上,然后继续找下一个;AC代码: 1 #include 2 #include 3 #include 4 #inclu...
阅读全文
摘要:我特么真是醉了;题意:给你两个四位数,问你能不能从一个数搜到另一个数,每次只改变其中的一位,并且保证每次得到的这个数是素数;如果有,给出最短路径,如果没有,输出“impossible”AC代码:#include #include #include #include #include #include...
阅读全文
摘要:题意:Y和M要找一家KFC谈谈,求所用的最短时间,时间是根据走的步数决定的;思路:搜搜搜啊,不过T了三发(忧桑,需要剪枝;BFS+剪枝:剪枝方法:Y和M分别只有一个,但是"@"KFC却有很多;这样的话,我们可以从"Y"和"M"出发,记录所有的能到达Y和M的步数;这样的话,只需要搜两遍图然后查询就可以...
阅读全文
摘要:题意:求一个十进制数,只能有0和1组成,且必须是n的倍数;广搜啊;从1开始,每次乘10或者乘10加一,用一个队列执行就好;AC代码:#include #include #include #include #include using namespace std;int n;void bfs(){ ...
阅读全文
摘要:题意:0可以走,1不可以走;正确做法应该是广搜(逃但是窝懒得看了,,回头再补,,用dfs水过去了,,忧桑,,AC代码:#include #include #include #include const int dx[4]= {0,0,1,-1};const int dy[4]= {1,-1,0,0}...
阅读全文
摘要:BFS 嘛~~刷了几道搜索水题之后有点感觉了(虽然这题以前在暑假训练计划上出现过代码很挫,别看,,题意:从数字n到m,可以通过减一,加一,乘二的方式走,问最短需要几步,很明显的广搜嘛~~AC代码:#include #include #include #include using namespace ...
阅读全文
摘要:妈哒受不鸟了!!状况百出就是A不了啊shit!!!题意: 三维数组,从S走到E,"."是可走的.AC代码:#include #include #include #include char s[35][35][35];int vis[35][35][35];const int dx[6]= {-1,1...
阅读全文
摘要:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=65959#problem/A用dfs做的;这道题和在棋盘上放皇后的题还是不一样的;区别在于,放皇后的那题只要求不同行,不同列,不在一条斜线上,可以不断的向下递归,如果有一行无法满足条件,停止...
阅读全文
摘要:题意:一只狗(柴犬,看到一块骨头,迷失在了maze里,S是起点,D是终点,问你能不能在时间T时从起点到达终点. 这题有个小trick: 奇偶剪枝+普通剪枝 解释一下: 普通剪枝:从S到D要走的步数是k=abs(x1-x2)+abs(y1-y2);那么如果k>=T,永远不可能到达; 奇偶剪枝: 首先,
阅读全文
摘要:题意:给你一些木棒,问这些木棒首尾相连能不能连成一个正方形。dfs+剪枝(卧槽一说剪枝瞬间高大上了思路:首先看一看能不能被4整除,不能的话当然是NO;如果能的话,从头进行递归;递归过程中,如果能够连成一条边,则继续往下递归,如果不能的话,立刻停止递归,消除标记。AC代码:#include #incl...
阅读全文
摘要:题意:数羊,规则是一只羊上下左右的羊都算是同一只羊,"#"是羊,"."是草,深搜咯~AC代码:#include #include #include const int dx[4]= {1,0,-1,0};const int dy[4]= {0,1,0,-1};char s[105][105];int...
阅读全文
摘要:题意:一个man站在@上,只能走上下左右四个方向,且不能踩到"#",问最多能猜到多少个".";简单dfs,既然只能走上下左右,那就把所有的方向全部遍历一遍;AC代码:#include #include #include const int dx[4]={1,0,-1,0};const int dy[...
阅读全文
摘要:中文题。思路:用for循环往每一行里放皇后,x[]存的数是列数,要判断是否在同一斜线上,条件是abs(列数相减)==abs(行数相减):解释一下,如果两个点左低右高的话,那么他们的行列数之和相等;如果两个点左高右低的话,那么他们行数之差和列数之差相同;两个条件合并起来就是上面那个,当然也可以不作改动...
阅读全文
摘要:题意:中文题,就是爽!AC代码:#include #include #include #include #define INF 0x3f3f3f3fusing namespace std;char s[500];char s1[4000][400];int dis[4000],k1,f;void d...
阅读全文
摘要:题意:1-n围成一个圈,要使相邻的两个数之和为素数;DFS第二道没看题解自己搜出来的题,好有成就感!!(虽然比较水吧= =上代码咯~ 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; ...
阅读全文