随笔分类 - 搜索(初级)
摘要:思路:首先将输入的各边长累加求和 即四边形周长sum, 后除4 即边长side,这样 通过DFS 搜索这些sticks能否组合成4根长度均为side 进而确定yes no。在此 就涉及到搜索顺序了-最优性剪枝: 不难理解 先搜索的小棒子 越长,组合构成side的方式就越少,搜索到结果的时间就越短。S...
阅读全文
摘要:思路:将所有数据从小到大排序,这样每次从序列的后面寻找答案ans,自然的确保了最大赌资性.接下来就要枚举其他三个数了 进而 判断 此时的ans是否存在 其他三个数 和 等于ans.而在三个数中至少有一个数在ans的前面 其他的两个数可能在ans的后面 因为存在负数.这样就可以先枚举两个 赌注 进而第...
阅读全文
摘要:DFS#include#include#includeusing namespace std;int knight[8][8];// 各点到起点的最短距离int x[8]={-2, -1, 1, 2, -2, -1, 1, 2};int y[8]={-1, -2, -2, -1, 1, 2, 2, ...
阅读全文
摘要:总结:①在读取数据处理空行上将房子之间的关系当做字符串输入当读入到一个字符串其内容为空时即空行停止输入。从字符串中读取数据时用sscanf()即可 。②广度优先搜索各个房间到ET房间的最短距离 。③深度优先搜索枚举每个房间如果搜索不到ET房间则为并经之路 并更新距离ET房间最近的房间 。#inclu...
阅读全文
摘要:#include#include#includeusing namespace std;bool g[26][26];int used[26];int n;//id 是当下着色结点 color是限制的颜色数量bool dfs(int id, int color){ bool flag;...
阅读全文
摘要:思路请点这里如果一开始做这道题我应该不会马上想到用BFS做,我还在纠结如何判断路径最短,好在之前做过类似的不容易看出是BFS解的,做这道题时也就明白了广搜的结果就是最短路径这大概就是 题做多了的缘故罢#include#includeusing namespace std;struct Node{ ...
阅读全文
摘要:能想到用广搜来解这道题也够diao了:广搜到 目标节点 就可以得到答案 steps#include#include#includeusing namespace std;struct node{ int Value, Steps; node( int N, int S )...
阅读全文
摘要:// 思路请点这里#include#include#includeusing namespace std;int board[9][9]; // 棋盘int RowFlag[9][10]; // RowFlag[i][j]=1 表示 在 第i行 已经放了数字 jint ColFlag[9][1...
阅读全文
摘要:#include#includeusing namespace std;#define Size 50int rooms[Size+1][Size+1];bool visited[Size+1][Size+1];// 每个格子的状态 访问与否int RoomArea; // 城堡中每一个房间的面积...
阅读全文

浙公网安备 33010602011771号