摘要:
这题其实很简单,我们可以用一个bfs搜索出所有的,小于k步的,到不同点不同步数的方案数。我们首先初始化,走到(0,0)点的时候,我们把步数设置为0,但是方法数设置为1,这是因为我们走零步,到一个点,确实有一种方法。然后就是bfs,当步数等于k的时候,我们就跳过这点,因... 阅读全文
摘要:
这一题是一道广搜的题目,首先我们通过读入字符串读入每一行,然后顺带找到鸣人的位置。然后我们初始化之后,就进行广搜,还是广搜的格式,但是要压入队列的条件我们可以稍微变一变,我们可以直接判断下一个要走的点,是星号或者是加号,我们就判断是否走过这一点是否走过。我们判断的依据... 阅读全文
摘要:
这道题目是一道数学题,我们可以假设n为7,m为14。这样的话我们就可以很清晰地看到7和7可以拼接在一起,这是一对,然后是7和14拼接在一起,第二对。我们可以直接让n/7,m/7,这样就是1*2,就得到了二。我们还可以知道,1可以和6拼,1可以和13拼,我们可以用循环从... 阅读全文
摘要:
广搜解决。广搜搜出最短路,直接输出返回就行了。每个点只搜一次,而且界限进行一次判断。else 语句里面不要用if else if,这样的话就直走一条路了。#include #include #include using namespace std;const i... 阅读全文
摘要:
这道题目我们使用深搜加剪枝的方法来写,我们首先算出一个最小表面积和最小体积来,就是半径从一递增,高度也从一递增,这是题目要求。然后我们计算出一个底层最大的半径和最大的高度,我们就从这个最大半径和最大高度开始深度优先搜索,每一层的蛋糕都从最大半径开始深搜,然后内循环里面... 阅读全文
摘要:
这道题目如果数据很小的话。我们通过这个dfs就可以完成深搜:void dfs(int s){ if (s==N) { minLen=min(minLen,totalLen); return ; } for (int i=0;iK) continue; if ... 阅读全文
摘要:
这题目是一道深搜的题目,我们写一个递归函数叫Ways(int i, int j ,int n),i j就是当前所处的坐标,我们设置一个visited数组,简称 V 。对于这个数组,首先初始化为零,然后我们递归的边界条件就是走完输入的步数的时候,就返回一。如果没走完,就... 阅读全文
摘要:
对于这道题目来说的话,我们的思路是这样的,我们首先把数据读进来,然后把color数组清零。我们的思路是这样的的,给每一个房间设置一个对应的color数组,然后color数组里面填满不同的数字,每一种数字都代表着一种联通的房间。相互联通房间里面,对应的color数组填的... 阅读全文