首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Cell的前端专栏

    广

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

    88220编辑于 2022-02-25
  • 来自专栏程序编程之旅

    HDOJHDU 1015 Safecracker()

    the following equation, where each letter is replaced by its ordinal position in the alphabet (A=1, B=2, v - w^2 + x^3 - y^4 + z^5 = target “For example, given target 1 and letter set ABCDEFGHIJKL, one possible solution is FIECB, since 6 - 9^2 + 5^3 - 3^4 + 2^5 = 1. THEQUICKFROG 0 END Sample Output LKEBA YOXUZ GHOST no solution 上个我用枚举做了,感觉不怎么好,毕竟是练算法的,就试试了 从里面选5个字母v,m,x,y,z(不重复),计算v-m^2+x^3-y^4+z^4是否等于目标值 选出来的方案可能有很多种,那么你应该选择字典序最大的那种。

    55720发布于 2021-01-21
  • 来自专栏程序编程之旅

    HDOJ1518Square

    Sample Input 3 4 1 1 1 1 5 10 20 30 40 50 8 1 7 2 6 4 4 3 5 Sample Output yes no yes ,s,su,a[1010],vis[1010],len; bool cmp(int a,int b) { return a>b;//从大到小排序 } void dfs(int a1,int a2, 优化时间**/ for(int i=a3; i<=n; i++) { /**对于那些用过的和不符合条件的,for那里可以不扫,故从a3开始**/ /**a3前面的对于最初的a2来说一定不符合 **/ if(vis[i]==0) { vis[i]=1; if(a2+a[i]==len) { /**但是换另外一条边的时候a3要改回1,因为那些未用的,对上一条边来说不符合条件的,可能符合这条边的条件**/ } else if(a2+

    37520发布于 2021-01-19
  • 来自专栏ypw

    Red and Black(DFS 练习)

    <algorithm> using namespace std; char map[25][25]; bool vis[25][25]; int s,e; int N,M; int mov[4][2]

    59420发布于 2020-09-11
  • 来自专栏yuyy.info技术专栏

    洛谷1002dfs

    // 洛谷1002dfs.cpp : 定义控制台应用程序的入口点。 j < N; j++) { if ((i == (h1 - 2) && j == (h2 - 1)) || (i == (h1 - 2) && j == (h2 + 1)) | | (i == (h1 - 1) && j == (h2 - 2)) || (i == (h1 - 1) && j == (h2 + 2)) || (i == (h1 + 1) && j == (h2 - 2)) || (i == (h1 + 1) && j == (h2 + 2)) || (i == (h1 + 2) && j == (h2 - 1)) || (i == (h1 + 2) && j == (h2 + 1)) || (i == h1 && j == h2 ) ) s[i][j] = 1; else s[i]

    26210编辑于 2022-06-28
  • 来自专栏程序编程之旅

    穷举搜索:回溯与

    dfs(c)//c从0开始 for(v=0;v<8;++v) 如果pos[c]:=v满足条件,dfs(c+1); 退回之后pos[c]:=0; 这跟书上的回溯算法不太一样,因为是采用的方法写的 问题分析 : 显然,每一行可以而且必须放一个皇后,所以n皇后问题的解可以用一个n元向量X=(x1,x2,…..xn)表示,其中,1≤ i≤ n且1≤ xi≤ n,即第n个皇后放在第i行第xi列上。

    82420发布于 2021-01-19
  • 来自专栏算法工程师之路

    和广问题-LeetCode 110、104(DFS, BFS)

    给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。

    1.4K10发布于 2019-10-13
  • 来自专栏用户5305560的专栏

    HDU - 1501 Zipper(dp&

    = 1; 取str1[0] dp[1][1] = 1; 在dp[1][0]的基础上再取str2[ dp[2][2] = 1; dp[3][2] = 1; >str; int l1=str1.length(), l2=str2.length(), l=str.length(); printf("Data set %d: " i=0;i<=l1;i++) { for(int j=0;j<=l2;j++) { if(i==0 && j==0) continue; if(i! =0 && dp[i][j-1]==1 && str2[j-1]==str[i+j-1]) { dp[i][j]=1; } } } if(dp[l1][l2

    28030发布于 2021-08-11
  • 来自专栏就业 C++ 综合学习

    【刷题】初步认识(DFS)

    dfs算法 深度优先搜索(DFS)是一种常用的搜索算法,它通过尽可能地搜索树的分支,来寻找解决方案。由于其简单和易于实现的特性,DFS成为解决问题的强大工具,尤其是在数据规模较小的情况下。 数据在100以内一般使用DFS 运行原理: DFS算法的核心思想是从一个起点开始,沿着树的边走到尽可能的分支上,然后回溯到之前的分叉点,寻找未探索的分支,对不满足条件的分支进行剪枝。 二叉树中的 我准备了以下题目,我们一起来看看吧: Leetcode 129. 求根节点到叶节点数字之和 家人们!上链接:129.

    29110编辑于 2024-07-09
  • 来自专栏程序编程之旅

    ZOJ(ZJU) 1002 Fire Net()

    …. 2 XX .X 3 .X. X.X .X. 3 … .XX .XX 4 …. …. …. …. 0 Sample output: 5 1 5 2 4 题目大意: 假设我们有一个正方形的城市,其街道都是直的。 ; dp(map,0,0); System.out.println(time); } } /** * 利用的方法

    44420发布于 2021-01-21
  • 来自专栏IT开发技术与工作效率

    最简单的Java代码

    Java深度优先搜索 static Set<Node> markSet = new HashSet<>(); private static void dfs(Node node){ if (markSet.contains(node)){ return; } System.out.print(node.getName() + "->"); markSet.add(node); for (Node n : node.getChild()) {

    82410发布于 2019-07-18
  • 来自专栏算法其实很好玩

    Day22-图算法-图的和宽

    今天先更一下图算法的基础知识-宽 二 问题来了 Q:给定一个图,给出图的深度优先搜索和宽度优先搜索结果。 ? 个顶点之后,开始按照配图连接边 graph[0]->neighbors.push_back(graph[4]); graph[0]->neighbors.push_back(graph[2] ); graph[1]->neighbors.push_back(graph[0]); graph[1]->neighbors.push_back(graph[2]); graph [2]->neighbors.push_back(graph[3]); graph[3]->neighbors.push_back(graph[4]); graph[4]->neighbors.push_back

    1K20发布于 2019-07-15
  • 来自专栏数据结构与算法

    数据结构与算法 | (DFS)与广(BFS)

    (DFS)与广(BFS) 在查找二叉树某个节点时,如果把二叉树所有节点理解为解空间,待找到那个节点理解为满足特定条件的解,对此解答可以抽象描述为: 在解空间中搜索满足特定条件的解,这其实就是搜索算法 所谓“层层展开” 例如在二叉树结构中,根节点是第0层,子节点是第1层,孙子节点是第2层,依此类推。BFS通常使用队列数据结构来实现。 LeetCode 515.

    1.7K231编辑于 2023-10-26
  • 来自专栏计算机工具

    深度优先搜索(DFS、)和广度优先搜索(BFS、广

    深度优先搜索(DFS、)和广度优先搜索(BFS、广) 深度优先搜索(简称“”或DFS) 图 1 无向图 深度优先搜索的过程类似于树的先序遍历,首先从例子中体会深度优先搜索。 scanf("%d,%d",&v1,&v2); int n=LocateVex(G, v1); int m=LocateVex(G, v2); if (m==-1 ||n==-1) { printf( 3 4 5 6 7 8 1,2 2,4 2,5 4,8 5,8 1,3 3,6 6,7 7,3 1 2 4 8 5 3 6 7 广度优先搜索 广度优先搜索类似于树的层次遍历 3 4 5 6 7 8 1,2 2,4 2,5 4,8 5,8 1,3 3,6 6,7 7,3 1 2 3 4 5 6 7 8 总结 本节介绍了两种遍历图的方式:深度优先搜索算法和广度优先搜索算法 运行结果 13,13 1 2 3 4 5 6 7 8 9 10 11 12 13 1,2 1,3 1,6 1,12 2,13 4,5 7,8 7,10 7,9

    1.8K10编辑于 2024-12-14
  • 来自专栏学习

    穷举vs暴vsvs回溯vs剪枝系列一>

    32700编辑于 2025-01-13
  • 来自专栏全栈程序员必看

    ZOJ1100 状压DP +

    //map<ll,int >mp; //map<ll,int >::iterator p; ll dp[12][10000];//第i行状态为j的放置方法数 int binary[15000][2] { cnt = 0; memset(dp,0,sizeof(dp)); } void dfs(int n,int now,int nex) { if(n > w)return;//还有个n+2的 所以有可能直接大于w,而不会产生等于w if(n == w) { binary[cnt][0] = now; binary[cnt++][1] = nex; return; } dfs(n+2, (now<<2) + 3,(nex<<2) + 3); dfs(n+1,(now<<1) + 1,nex<<1); dfs(n+1,now<<1,(nex<<1) + 1); } int main

    24710编辑于 2022-07-12
  • 来自专栏数据结构与算法

    P2668 斗地主 贪心+

    输入输出样例 输入样例#1: 1 8 7 4 8 4 9 1 10 4 11 1 5 1 1 4 1 1 输出样例#1: 3 输入样例#2: 1 17 12 3 4 3 2 3 5 4 10 2 3 3 12 2 0 1 1 3 10 1 6 2 12 1 11 3 5 2 12 4 2 2 7 2 输出样例#2: 6 说明 样例1说明 共有1组手牌,包含8张牌:方片7,方片8,黑桃9 尼玛广323行85分,压行之后57行就A了,,,‘ 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include ==2*/ 23 int take_num[5]={0,5,3,2};// 斗地主的规则,分别对应单顺双顺三顺 24 void dfs(int now)// now是指已经操作的次数 25 { 26 >=2)//根据贪心的原理,能出两张则不出一张 37 happen[2]-=2;// 能带两套对牌不带一套对牌 38 else if(happen[1]>=2)

    2.3K90发布于 2018-04-13
  • 来自专栏程序编程之旅

    HDOJ1181变形课 回溯

    变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 18474 Accepted Submission(s): 6663

    37110发布于 2021-01-19
  • 来自专栏C/C++、数据结构、算法

    DFS:+回溯+剪枝解决组合问题

    return ret; } void dfs(int open,int close)//open和close记录上界和下界 { if(path.size()==2*

    29510编辑于 2024-04-09
  • 来自专栏Java

    二叉树的

    前言: 本章节更深入学习递归 计算布尔二叉树的值 思路: 1.函数头设计:dfs(root) 2.函数体:需要一个接收left 和 right 的值 并且根据root的值进行比较 3.递归出口 evaluateTree(root.left); boolean right = evaluateTree(root.right); return root.val == 2 , preSum); } return ret; } 二叉树剪枝 思路: 叶子节点为0 直接让它指向空 后序遍历思想 1.遍历完左子树 再遍历右子树 2.

    23510编辑于 2024-11-20
领券