BFS/DFS
文章平均质量分 69
fu_ding1991
勿忘初心,方得始终
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ 3278--Catch That Cow
本题采用BFS三个方向进行搜索,stl的queue要一百多ms,估计可能内存扩展太多, 影响时间。利用自写的队列,开到适量大小(35000)可以达到0ms。 利用DFS剪枝不太好,不会。原创 2014-07-26 17:13:18 · 397 阅读 · 0 评论 -
POJ 2454--Jersey Politics
题意:有N = 3*K个城市,每个城市有1000头牛,每个城市的牛支持A或B,请将这N个城市分为3个地区,每个地区含有K个城市,且要使至少两个地区A的支持率高。题解:首先将输入进行处理,保存每个城市支持数的差值,然后进行排序,因为一定有解,所以在前2*K个城市当中一定可以找到两个都满足要求的划分,则剩余K个城市直接划分为一个地区。典型的组合数DFS,为了达到从2*N个牛中选择K个牛组成一个原创 2014-12-26 17:42:42 · 629 阅读 · 0 评论 -
POJ 1947--Rebuilding Roads
题意:给定一规模为N的树,问至少去掉多少条边能得到一个规模为P的子树。题解:看了一些大牛的题解,很困惑纠结一些问题。最佳答案是否是包括整棵树根节点的一颗子树,动态规划定义时的状态是否是包括子树根节点的解。对于第一个可以很容易举出反例:4 11 21 42 3其代价为1的子树只含有节点3,不包括根节点1。所以最佳子树不一定包括整棵树根节点。对于第二个问题,原创 2014-12-13 17:45:46 · 423 阅读 · 0 评论 -
Code Jam-- New Lottery Game
原题:https://code.google.com/codejam/contest/dashboard?c=2994486#s=p1题意:给定三个10^9以内的数A,B,K,问有多少个数对在x 题解:解题的基础在于求一个小于K的数的个数DP上。IsLessA为1代表已形成比特位前缀小于A的比特位前缀,为0代表前缀相等,其它详见注释。#include#include#inc原创 2015-01-20 15:27:14 · 506 阅读 · 0 评论 -
poj 2516--Minimum Cost
最小费用最大流问题:在最大流的基础上,使原创 2014-10-19 18:04:57 · 603 阅读 · 1 评论 -
Tarjan双连通分量算法论文翻译
Depth-First Search and Linear Graph Algorithms Tarjan在1972年发表了这篇关于线性图论算法的论文,在论文中详细分析了深度优先搜索的各种性质,并且利用其性质给出了两个应用:无向图的双连通分量以及有向图的强连通分量。 在此将对其中的双连通分量算法做出一些翻译解释。仅需要你对DFS发现时间以及后向边有了解即翻译 2014-10-23 21:12:02 · 1710 阅读 · 0 评论 -
Facebook Hacker Cup 2015 Round 1--Corporate Gifting(树形动态规划)
原题:https://www.facebook.com/hackercup/problems.php?pid=759650454070547&round=344496159068801题意:给定一颗有根树,在树上下层的节点要给上层节点礼物,根节点的礼物则给慈善会,但是给礼物有个条件就是你不能送你的父节点已经送出的礼物。问满足要求的最少花费。 题解:这个题卡了一段时间,类似于染色问题,可以用树形动态原创 2015-03-14 22:17:12 · 1007 阅读 · 0 评论 -
POJ 1419--Graph Coloring(最大团求二着色问题)
无向图中二着色,利用DFS以及简单的DP对最大团算法进行优化。。。原创 2014-07-26 12:14:12 · 1446 阅读 · 0 评论 -
LeetCode--Unique Binary Search Trees II(DP求BST)
题意:Given n, generate all structurally unique BST’s (binary search trees) that store values 1…n. For example, Given n = 3, your program should return all 5 unique BST’s shown below.1 3 3原创 2015-03-25 15:27:23 · 646 阅读 · 0 评论 -
LeetCode--Combination Sum(DFS)
Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.The same repeated number may be chosen from C unlimited number of t原创 2015-03-18 18:20:00 · 389 阅读 · 0 评论 -
LeetCode--Sudoku Solver(DFS)
题意:求解9*9数独。 题解:典型的DFS,使用三个hash数组来判断行,列以及方块的取值情况,根据深搜不断更新数组。代码如下:class Solution {public: int solve(vector<vector<char> >& board,int r,int c){ if(r == 8&&c == 9) //数独完成原创 2015-04-01 11:39:21 · 398 阅读 · 0 评论 -
POJ 2828--Buy Tickets(线段树)
题意:给定一队列,允许插队原创 2014-10-01 23:45:09 · 383 阅读 · 0 评论 -
POJ 2777--Count Color(线段树)
同POJ2528,线段树的题目,此题唯一的不同就是查看颜色数目也为原创 2014-09-28 21:42:53 · 401 阅读 · 0 评论 -
POJ 1459--Power Network(三种方法求最大流)
不管用ford——fulkerson方法还是推送重贴标签,首先都不用管自环,显然一个最大流 是不会包括自环的,自环只会减少流量。然后反向边也不需要如算法导论中加入另外的 点进行处理。 ******为了减少内存,直接用容量的减少代表流量的增加,正向边容量减少多少,正向流 量就增加多少,同时增加相应的反向容量,意思就是说反向的能允许的流量增加,而如果 接下来的操作原创 2014-07-26 18:35:10 · 661 阅读 · 0 评论 -
Recover Binary Search Tree(BST中序遍历)
题意:Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure.题解:因为BST中序遍历(左中右)的结果肯定组成一个上升序列。 如:1,2,3,4,5,6. 所以若节点有交换,则肯定有逆序对的存在。 如:1,5,3,4,2原创 2015-05-27 16:21:46 · 805 阅读 · 0 评论 -
Code Jam--Good Luck
题意:每次从[2,M]中随机选一个数写在卡牌上,重复N次;再从N个卡牌中任意选择x(0原题:https://code.google.com/codejam/contest/2418487/dashboard#s=p2;官方解答:https://code.google.com/codejam/contest/2418487/dashboard#s=a&a=2首先做了14年roun原创 2014-12-24 15:56:09 · 662 阅读 · 0 评论 -
POJ 3621--Sightseeing Cows(0-1规划求最大密度)
利用0-1规划中的二分以及Dinkelbach算法求解有向图中的最大密度问题,并且对此问题中的Dinkelbach算法的期望搜索迭代次数作了简要分析。原创 2015-01-29 22:35:11 · 741 阅读 · 0 评论 -
Code Jam--The Bored Traveling Salesman
原题:https://code.google.com/codejam/contest/2994486/dashboard#s=p2官方题解:https://code.google.com/codejam/contest/2994486/dashboard#s=a&a=2题意:给定一个规模为N的无向连通图,每个点有一个5位10进制数的邮政编码,当遍历这个图时我们把访问到的zip按先后原创 2015-01-08 11:25:33 · 473 阅读 · 0 评论 -
POJ 2251--Dungeon Master
较简单:考察三维BFS。单向BFS:16ms。双向BFS:16ms。当两个方向的BFS探查到同一点,则始终点到此点的路径都为最短,它们的和也即是始终点最短距离。只需要用一个三维数组表示双边 BFS到此点的最短距离。不用担心其会被覆盖,因为第一次覆盖时也即是双边 BFS相遇时,其中保存的值必定是先到此点的最短距离。 但是要用4维的标记访问数组,因为即要让两边都执行BFS,在探查相遇结点时原创 2014-07-26 17:30:11 · 443 阅读 · 0 评论 -
POJ 1321--棋盘问题
DFS:16ms首先枚举从n行中选择cheeseNum个行的个数,也就是选择棋子的过程中第一行 必须是[0,n-cheeseNum]之间,DFS过程中第二行的开始行数就必须在第一行基 础上加1,同时能有棋子的第二行的最大行数加1。当最大行数为n时,也即是 DFS了cheeseNum层,并且列数无冲突时,结果加一。原创 2014-07-26 17:53:03 · 475 阅读 · 0 评论 -
POJ 3259--Wormholes(求负环)
题目要求有向图是否存在负环,求负环的方法有B原创 2014-08-03 12:05:50 · 632 阅读 · 0 评论 -
POJ 3041--Asteroids
此题考察最小顶点覆盖原创 2014-07-28 23:44:32 · 390 阅读 · 0 评论 -
POJ 2942--Knights of the Round Table(双连通分量)
题意:有N个骑士,互相憎恨对方,原创 2014-10-23 23:24:12 · 450 阅读 · 0 评论 -
POJ 3411--Paid Roads
题意:有N个城市M条路,这个路有点特别,jike原创 2014-11-17 10:43:43 · 648 阅读 · 0 评论 -
POJ 1724--ROADS
题意:有N个城市,R条路,每条路有原创 2014-11-17 11:05:14 · 402 阅读 · 0 评论 -
POJ 3308--Paratroopers
题意:给定一m*n矩阵,伞兵可能降落到原创 2014-10-31 19:55:44 · 410 阅读 · 0 评论 -
POJ 2195--Going Home
最小费用最大流问题,同POJ2516,此题原创 2014-10-19 19:09:58 · 408 阅读 · 0 评论 -
POJ 3373--Changing Digits
题意:给定一原创 2014-11-23 13:25:23 · 524 阅读 · 0 评论 -
POJ 1703--Find them, Catch them
题意:一个城市有两个犯罪团伙原创 2014-11-06 15:28:45 · 450 阅读 · 0 评论 -
POJ 2492--A Bug's Life
题意:有个专家在研究一种虫子原创 2014-11-06 15:30:08 · 472 阅读 · 0 评论 -
POJ 2486--Apple Tree
题意:有一颗苹果树,每个节点有一些苹果,问从根节点出发走K步最多能吃到多少苹果。题解:树形DP,状态转移较为复杂,具体可参考注释。#include#include#include#includeusing namespace std;class solve{private: vector > sons; char* vis; int** dp原创 2014-12-16 11:11:56 · 436 阅读 · 0 评论 -
POJ 1191--棋盘分割
题意:给定一8*8的棋盘,每次沿着边原创 2014-11-24 20:30:38 · 506 阅读 · 0 评论 -
Binary Tree Maximum Path Sum(树形动态规划)
题意:Given a binary tree, find the maximum path sum.The path may start and end at any node in the tree.For example: Given the below binary tree, 1 / \ 2 3Return 6.题解:设dp[root]为从root一直往下走的最大和,设最大原创 2015-05-28 15:47:38 · 633 阅读 · 0 评论
分享