
dfs
weixin_42246923
这个作者很懒,什么都没留下…
展开
-
HDU 2181 汉密尔顿回路 简单dfs
从一个点出发回到一个点,经过图中每个点的回路,按照字典序输出所有解#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <vector>using namespace std;int...原创 2018-05-20 18:38:26 · 452 阅读 · 0 评论 -
HDU 1484 dfs 路径记录
本题难点有两个,一个是如何记录路径,还有就是如何设置障碍物,即障碍物的方向与扩展步数的方向要保持一致#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <stack>#include <climits>usi...原创 2018-06-29 09:27:14 · 125 阅读 · 0 评论 -
LeetCode sudoku solver dfs
public class Solution { public void solveSudoku(char[][] board) { if(board==null || board.length==0 || board[0].length==0) return; dfs(board); } public st...原创 2018-07-17 09:15:56 · 165 阅读 · 0 评论 -
leetcode word search dfs
class Solution {public: bool exist(vector<vector<char>>& board, string word) { int row = board.size(); if(row==0) return false; int col = board[0].size();...原创 2018-07-10 10:28:07 · 107 阅读 · 0 评论 -
leetcode 生成所有的满足条件的ip
class Solution {public: vector<string> restoreIpAddresses(string s) { vector<string> res; string cur; dfs(res,cur,s,0); return res; } void...原创 2018-07-10 09:40:05 · 373 阅读 · 0 评论 -
BST的个数以及所有解的构造
int numTrees(int n) { if(n<=0) return 0; vector<int> dp(n+1,0); dp[0] = 1; dp[1] = 1; for(int i=2;i<=n;i++){ //node个数 for(int j=1;j<...原创 2018-07-10 00:01:33 · 310 阅读 · 0 评论 -
HDU 1307 基础的dfs,问题在于如何存储图节点和vis数组
#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <set>#include <map>using namespace std;int n,start,dest;map<int,vector&原创 2018-07-03 00:17:46 · 234 阅读 · 0 评论 -
LeetCode subset dfs
class Solution {public: vector<vector<int> > subsets(vector<int> &S) { vector<vector<int>> res; vector<int> tmp; sort(S.begin(),S.e...原创 2018-06-02 10:58:50 · 147 阅读 · 0 评论 -
LeetCode subset-2 dfs 不重复的组合生成问题
class Solution {public: vector<vector<int> > subsets(vector<int> &S) { vector<vector<int>> res; vector<int> tmp; sort(S.begin(),S.e...原创 2018-06-02 10:56:45 · 193 阅读 · 0 评论 -
LeetCode combination sum ,每个数可以使用多次,dfs
class Solution {public: vector<vector<int> > combinationSum(vector<int> &num, int target) { vector<vector<int>> res; vector<int> cur; ...原创 2018-07-14 14:58:35 · 112 阅读 · 0 评论 -
LeetCode Contest 2.Reordered Power of 2 3.Advantage Shuffle
bool reorderedPowerOf2(int N) { string str = to_string(N); bool flag = false; sort(str.begin(),str.end()); do{ if(str[0]!='0'){ int num = at...原创 2018-07-15 11:28:38 · 169 阅读 · 0 评论 -
[NOIP 2002 普及组]选数 DFS
import java.util.*;public class Main { public static int n,k; public static int res; public static int[] a; public static boolean judge(int num){ for(int i=2;i<=Math.s...原创 2019-03-27 21:36:57 · 518 阅读 · 0 评论 -
LeetCode 980 dfs, dp 路径记数
class Solution { int[] dx = new int[]{0, 0,1,-1}; int[] dy = new int[]{1,-1,0, 0}; int sx,sy,ex,ey; int m,n; int res = 0; int[][] grid; public int uniquePathsIII(int[...原创 2019-01-23 09:42:51 · 346 阅读 · 0 评论 -
LeetCode 979 二叉树思考题
感觉题目对思维的能力要求还是挺高的,不能直接暴力搜索求解,需要将问题进行很大的转化,思维题/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : v...原创 2019-01-21 10:07:28 · 311 阅读 · 0 评论 -
LeetCode 891
利用性质解题class Solution {public: int sumSubseqWidths(vector<int>& A) { sort(A.begin(),A.end()); long p = 1; long res= 0 ; const long mod = 1e9+7; ...原创 2018-08-25 23:59:59 · 183 阅读 · 0 评论 -
找出当前值在数组中排第几
import java.util.*;public class Rank { Node root = null; //整棵树的根 public int[] getRankOfNumber(int[] A, int n) { // write code here int[] res = new int[n]; for(int i...原创 2018-08-15 10:27:36 · 1491 阅读 · 0 评论 -
网易2017笔试题 幸运的袋子 dfs
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>using namespace std;int n;int a[1005];int res = 0;int dfs(int beg,i...原创 2018-08-10 12:24:59 · 229 阅读 · 0 评论 -
LeetCode subset-2 dfs 不重复的组合生成问题
vector<vector<int> > subsetsWithDup(vector<int> &S) { vector<vector<int>> res; vector<int> cur; res.push_back(cur); sort(S.begin...原创 2018-06-02 10:14:53 · 277 阅读 · 0 评论 -
HDU 1401 dfs+剪枝
#include <cstdio>#include <cstring>#include <algorithm>#include <climits>using namespace std;struct node{ int x,y;}a[4],b[4];int dx[]={0,0,1,-1};int dy[]={1,-1,0,...原创 2018-05-29 17:16:33 · 126 阅读 · 0 评论 -
leetcode binary tree path sum
本题的关键在于读懂题目,对路径的定义,是最大路径和而不是最大子树和public class Solution { int res; public int maxPathSum(TreeNode root) { res = Integer.MIN_VALUE; dfs(root); return res; } //后根遍...原创 2018-06-12 09:11:14 · 129 阅读 · 0 评论 -
HDU 2611 Sequence Two dfs
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n,p;int cnt,len;struct node{ int pos,val;}a[105];int res[105]; //用来记录当前生成的路径bool cmp(no...原创 2018-05-24 09:46:58 · 153 阅读 · 0 评论 -
HDU 1045 dfs
#include <cstdio>#include <iostream>using namespace std;int n;char graph[5][5];int res;bool judge(int x,int y){ //判断该位置是否可以放置 //row for(int j=y-1;j>=0;j--){ if(...原创 2018-05-23 13:00:33 · 149 阅读 · 0 评论 -
hdu 2610 dfs Sequence One 排列生成加剪枝
生成一个序列的前p小的不递减排列,排列间比较大小的方式为串的长度和串在原来顺序中的序号先写了一种最简单的不考虑剪枝且不考虑个数,生成所有排列的算法,且这个不考虑序列的递增问题,且本题目考虑的是组合问题,下面的算法是生成排列用的。#include <iostream>#include <cstdio>#include <cstring>#include &l...原创 2018-05-23 10:14:09 · 212 阅读 · 0 评论 -
HDU 1584 蜘蛛牌 dfs
#include <cstdio>#include <cstring>#include <algorithm>#include <climits>#include <cmath>using namespace std;int a[20],vis[20],res;void dfs(int cnt,int cost){ ...原创 2018-05-26 15:07:22 · 126 阅读 · 0 评论 -
HDU 1560 DNA sequence dfs
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;char s[10][10];char ch[] = "ACGT";int len[10],pos[10];int res,n;int h()...原创 2018-05-26 12:47:42 · 163 阅读 · 0 评论 -
HDU 1072 bfs或者带剪枝的记忆化dfs
本题目由于普通的个子可以重复走(在样例三中可以看出),所以不能通过标记位限制只能走一次,但是需要进行一定的限制防止无限的循环。实际上,为4的格子只需要走一次,重复走只会使得步数变的更多,并不会增加到达目标位置的能力,因此,在BFS中,只需要限制重置点只能走一次即可。 其他格子,除了起点以外,都可以重复走。#include <cstdio>#include <cstring>...原创 2018-05-22 09:32:52 · 142 阅读 · 0 评论 -
HDU 4771 很好的dfs和bfs相结合的问题
题目的含义是,求从起点出发,经过k个点的最短路径长度。因此,可以先将起点和k个点构造一个图,图之间的权重为两点之间的最短路径距离,这个距离可以使用bfs求得。在构造出这个图之后,可以使用dfs进行一个遍历,求从起点出发,经过所有k个点的最小路径的长度。本题对dfs和bfs都是一个很好的练习#include <cstdio>#include <cstring>#inclu...原创 2018-05-30 10:00:06 · 269 阅读 · 0 评论 -
HDU 2209 DFS
#include <cstdio>#include <cstring>#include <algorithm>#include <climits>using namespace std;char str[30];int a[30];int dfs(int pos,int len,int step){ if(pos==len)...原创 2018-06-06 09:33:56 · 89 阅读 · 0 评论 -
HDU 2952 简单dfs
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n,m;char graph[105][105];bool vis[105][105];int res;int dx[] = {0,0,1,-1};int dy[] = {1,-1,0,...原创 2018-05-31 22:44:45 · 117 阅读 · 0 评论 -
HDU 1175 连连看 dfs
#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;int n,m;int graph[1005][1005];bool vis[1005][1005];int x1,y1,x2,y2;bool fla...原创 2018-05-31 17:01:12 · 136 阅读 · 0 评论 -
HDU 2918 DFS
dfs在实现最短长度的步骤时,是采用约束的方法,即限制当前最长的步数是多少,然后如果超过这个步数则剪枝。逐渐增加阈值到最大,如果当前的步数可以到达,则表示当前的步数是最短步数#include <cstdio>#include <cstring>#include <algorithm>using namespace std;char s[15];int...原创 2018-06-07 10:36:14 · 110 阅读 · 0 评论 -
HDU 1428 bfs(优先队列计算最短距离) dfs(记忆化搜索)
#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;struct node{ int x,y,cost; friend bool operator < (node a,node b){ ...原创 2018-06-21 15:02:57 · 152 阅读 · 0 评论 -
HDU 1078 记忆化dfs
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int n,k;int graph[105][105];int dp[105][105];int dx[] = {0,0,1,-1};int d...原创 2018-06-21 14:28:11 · 125 阅读 · 0 评论 -
HDU 5547 简单数独 dfs
判断函数写的稍微有些复杂,可以参考其他的判断函数#include <cstdio>#include <cstring>#include <algorithm>using namespace std;bool flag;char graph[5][5];int a[4][4] = {{0,1,4,5},{2,3,6,7},{8,9,12,13},{1...原创 2018-06-21 14:22:30 · 145 阅读 · 0 评论 -
Leetcode 1129.
class Solution { public int[] shortestAlternatingPaths(int n, int[][] red_edges, int[][] blue_edges) { int[] res = new int[n]; Arrays.fill(res, Integer.MAX_VALUE); res[0] ...原创 2019-09-15 10:25:14 · 262 阅读 · 0 评论