
dfs
Giggle1929
这个作者很懒,什么都没留下…
展开
-
第六天PAT-A1003 Emergency最短路问题Dijkstra算法(小根堆)描述及模板
A1003Description:作为一个城市的急救队领导,你会得到你所在城市的一个特别地图。这张地图展示了一些由一些路径相连的几个零散的城市。每个城市的救援队总数和连接两个城市的道路的长度都标注在地图上。当有急救电话从别的城市呼叫你的时候,你的任务就是尽快带领你的队伍到达位置,同时,尽可能多地召集路中的人手。Input:每组测试一个样例首行给出四个正整数:城市数目N<=500,道路数M,你所在的城市C1和你必须拯救的城市C2接下来一行给出N个整数,分别是对应下标城市的救援队数目接下来原创 2020-08-20 13:27:17 · 233 阅读 · 0 评论 -
第一天PAT-A1053 Path of Equal Weight
A1053description:给一个非空树,其根为Ri,以及对于每个叶子节点Ti的权重Wi。一条由R到L的路径的权重为在该路上的所有叶子节点的权重之和。现给定一个带权重的树,求所有权重为给定数字的路线。例如下图:对于每个节点,上方数字是其节点ID(2位数字),下方数字是该节点的权重。假设给定的数字是24,则存在4条不同的路线符合题意, {10 5 2 7},{10 4 10},{10 3 3 6 2} 和 {10 3 3 6 2},对应图中红色路径。Input:每个测试一个样例第一行:一棵原创 2020-08-15 21:53:02 · 123 阅读 · 0 评论 -
DFS - Red and Black
There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can’...原创 2019-05-01 16:39:59 · 365 阅读 · 0 评论 -
JSK-DFS-走迷宫
题目dfs水题,贴上dfs模板void dfs(int deep) { if (到达边界) { // 做一些处理后返回 } else { for(所有可能的选择) { dfs(deep + 1); } }}代码框架:// 对坐标为(x, y)的点进行搜索void dfs(int x, int ...原创 2019-05-14 12:28:14 · 183 阅读 · 0 评论 -
JSK-DFS-踏青
题目在这一道题竟然做了一节课…貌似最开始审题不清?题目没有指定草地的表示方法于是改正为遇到" . "标记为空地1,其余的默认为0深搜思路:遍历一遍二位数组,当且仅当遇到0时开始进行dfs(1)根据题意,从0开始进行四方向深搜过程中可触及的0区域均视为一个整体,故仅需在(1):遇到0,即遇到深搜标志时才将问题解++。AC警告#include<bits/stdc++.h&g...原创 2019-05-14 15:33:31 · 249 阅读 · 0 评论 -
计蒜客-子树的结点个数-图的遍历-深度优先搜寻
题目链接树是一种特殊的图,采用邻接表存储树结构简单的深搜,AC代码#include<bits/stdc++.h>using namespace std;const int maxn = 1005;struct edge{ int v, next;}e[maxn];int n, p[maxn], eid, tab[maxn];void init(){ memse...原创 2019-07-13 08:52:33 · 187 阅读 · 0 评论 -
计蒜客-买书-dfs剪枝
题目链接果然还是太菜了…解空间树考虑得太粗了,超时代码(shame)#include<bits/stdc++.h>using namespace std;int m, n, k, p[35];bool vis[35], flag = false;void dfs(int now){ if(now >= k){ if(m == 0) { print...原创 2019-07-04 23:19:22 · 129 阅读 · 0 评论 -
计蒜客-八皇后问题-深度优先搜索剪枝
题目链接按行深搜,设定三个标记数组分别标记已被占用的列、主对角线和副对角线分析可得行列号推导主对角线、副对角线下标方法AC如下#include<bits/stdc++.h>using namespace std;int amap[8][8], maxc = INT_MIN;bool val[8], sla[15], sla2[15];void dfs(int c, ...原创 2019-07-15 10:27:38 · 208 阅读 · 0 评论 -
计蒜客-等边三角形-抽象dfs剪枝思路过程
题目链接动手之前要想好解空间树,解空间树是决定复杂度的关键,极端情况的微弱剪枝效果往往不佳。一开始的想法(相对麻烦,可以直接跳过)三条边的长度已知(sum),按照边的长度作为dfs的参数a遍历每条边,未被使用过且sum - a大于当前边,则将该木棍纳入该边当边长符合题目要求时,判断此时是第几条满足要求的边如果是第三条,则判断是否全部边都被使用,不是则判断为不可能,是则输出yes,结束...原创 2019-07-06 02:41:50 · 218 阅读 · 0 评论