随笔分类 - ACM_DFS&BFS
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607 题解:给定一棵树,从树中的任意选一个顶点出发,遍历K个点的最短距离是多少?(每条边的长度为1) 算法分析: 首先如果k小于等于直径长度,那么答案为k−1;如果k大于直径长度,设直径长度为r,那么答
阅读全文
摘要:自己写挫了...借鉴的别人的代码... 题目链接:http://poj.org/problem?id=2631 题解链接:http://blog.csdn.net/v5zsq/article/details/50654640 Description 给出一棵无向树,求树的直径,即树上两点之间的最长距
阅读全文
摘要:描述在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重复的路)。 代码:
阅读全文
摘要:描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。 规定,所有的边都只能画一次,不能重复画。 代码:
阅读全文
摘要:二叉树,若其与自己的镜像完全相同,就称其为镜像树。 是一棵镜像树;而 不是镜像树。现给你一棵二叉树,请你判断其是不是镜像树。
阅读全文
摘要:给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子。三个水杯之间相互倒水,并且水杯没有标识,只能根据给出的水杯体积来计算。现在要求你写出一个程序,使其输出使初始状态到达目标状态的最少次数。 Input 第一行一个整数N(0<N<50)表示N组测试数据接下来每组测试数据有两行,第
阅读全文
摘要:1 vector<int> p[MAX]; 2 int V; 3 int color[MAX]; 4 5 bool dfs(int v,int c) 6 { 7 color[v]=c; 8 for(int i=0; i<p[v].size(); i++){ 9 if(color[p[v][i]==c
阅读全文
摘要:自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视。据说,在2008北京奥运会上,会将数独列为一个单独的项目进行比赛,冠军将有可能获得的一份巨大的奖品———HDU免费七日游外加lcy亲笔签名以及同hdu acm team合影留念的机会。所以全球人民前仆后
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 BFS搜索 目标地 并记录下来 之后再判断两段路程之和 代码: 1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 #
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1584 全部状态都判断一遍 代码: 1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 #include <algorithm
阅读全文
摘要:输入: N=4,L=25,P=10 A={10,14,20,21} B={10,5,2,4} 输出: 2 (在第1个和第2个加油站加油) 1.如果优先队列也是空的,则无法到达终点. 2.否则取出优先队列中的最大元素,并用来给卡车加油. 1 int L,P,N; 2 int A[MAX],B[MAX]
阅读全文
摘要:堆的两种操作所花的时间都和树的深度成正比.因此,如果一共有n个元素,那么每个操作可以在O(logn)时间内完成. 堆的实现 1.左儿子的编号是自己的编号*2+1 2.右儿子的编号是自己的编号*2+1 push和pop的实现: 1 int heap[MAX],sz=0; 2 3 void push(i
阅读全文
摘要:有1元、5元、10元、50元、100元、500元的硬币各C1 C5 C10 C50 C100 C500 。现在要用这些硬币来支付A元,最少需要多少枚硬币? 优化使用面值大的硬币。 贪心法就是遵循某种规则,不断贪心地选取当前最优策略的算法设计方法. 搜索算法和动态规划算法是在多种策略中选取最优解,而贪
阅读全文
摘要:N*M的迷宫,从起点到终点,求最短距离 宽度优先搜索按照距开始状态由近及远的顺序进行搜索,因此可以很容易的用来求最短路径,最少操作之类问题的答案. (可以构造成pair或者编码成int来表达状态) 当状态更加复杂时,就需要封装成一个类来表示状态了. 虽然到达终点时就会停止搜索,可如果继续下去直到队列
阅读全文
摘要:N*M的园子,雨后积起了水.八连通的积水背认为是连接在一起的.请求出园子里总共有多少水洼? dfs(Depth-First Search) 八个方向的简单搜索.... 深度优先搜索从最开始的状态出发,遍历所有可以到达的状态.由此可以对所有的状态进行操作,或者列举出所有的状态. 1 int N,M;
阅读全文
摘要:学习链接:http://www.ihypo.net/1554.htmlhttps://www.slyar.com/blog/depth-first-search-even-odd-pruning.htmlhttp://blog.csdn.net/chyshnu/article/details/617...
阅读全文
摘要:Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空...
阅读全文
摘要:题目描述Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中...
阅读全文
摘要:Problem DescriptionThere is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile...
阅读全文
摘要:Problem DescriptionThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rec...
阅读全文

浙公网安备 33010602011771号