- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 Shell编程——统计特定目录下文件个数
实现功能: 用户输入目录路径,遍历用户输入目录下的文件及目录,统计文件及目录个数。代码如下:#!/bin/bash#filename:FileType.shread -p "请输入路径(直接换行表示当前目录):" fpathif [ "$fpath" = "" ] then fpath=$(pwd)fidirectory(){ echo "您输入的路径为:$fpat
2016-03-27 16:49:00 3687
原创 Tarjan算法
用途: 求一个图的强连通分量。算法介绍: 在一个图中,如果两个顶点相互可以到达,则称这两个点强连通。若一个图的每两个顶点都强连通,称此图为一个强连通图。一个图的最大强连通子图,称为强连通分量。 Tarjan算法以深度优先搜索为基础。定义dfn[], low[],其中,dfn[i]表示节点i在第几层被搜到(通常被称为时间戳),low[i]表示节点 i 所在的强连通子图的根节点的dfn值。 算法
2016-03-17 09:38:06 264
原创 POJ1125 Stockbroker Grapevine
题意: 现有N个股票经纪人,他们之间存在单向的通信路径,不同通信路径有不同的长度。现在有一个消息要在他们中进行传递。问要从哪一个人开始出发,才能使消息传遍所有人并且用时最短。如果不存在这样一个人,输出disjoint。思路:利用floyd算法,求出所有节点之间的最短路径。计算每个人开始传递所需要的时间,取最小值。 注意:消息的传递可以同时进行。代码如下:#include <iostream>#
2016-03-15 09:30:47 314
原创 最短路径之Floyd算法
用途:求一个图中每一对顶点之间的最短路径。算法描述: floyd算法的基本思想是动态规划。 假设 dis[i][j] 表示节点i到节点j的最短距离,则有如下递推公式: dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);即节点i到节点j的最短路径有可能直接到达,也有可能借助另一节点k到达。其中,对k进行遍历,使dis[i][k] + dis[k]
2016-03-15 08:49:09 347
原创 最短路径之Dijkstra算法
用途: 计算一个图中源点到其它所有点的最短路径。算法描述:将图的所有顶点分成两个集合,S集合与T集合。其中,S集合包含了已经求出最短路径的所有顶点,T集合包含了其余顶点。初始化时,S集合仅包含起始点v0.遍历T集合中的所有顶点,找到与起始点距离最小的点,将其加入到S集合。更新dis[]数组。dis数组存储起始点到其余各顶点的最短距离。重复2,3步骤,直到S中包含了图的所有顶点。算法流程:
2016-03-13 11:04:11 331
原创 POJ1080 Human Gene Functions
题意: 给出两组基因序列,给定每个基因字母与基因字母之间,以及基因字母与空格之间的相似度,求两组基因序列的最大相似度。其中,空格和空格不能相对。思路: 此题和最长公共子序列的求解方法类似,利用动态规划进行求解。 假设 res[i][j] 表示基因序列a的前i个基因与基因序列b的前j个基因的最大相似度,则可得递推关系式: res[i][j] = max(res[i - 1][j - 1] + V
2016-03-08 17:23:40 254
原创 POJ1321 棋盘问题
题目大意: 题目为中文,见http://poj.org/problem?id=1321思路: 看到这个题,我最容易联想到八皇后问题。我认为本题与八皇后问题唯一不同的一点在于八皇后问题每一行必定会放一个棋子,而本题中有的行可能不需要放棋子。与八皇后思路相同,本题也采用深度优先搜索,对每一行进行深度优先搜索,要注意不放皇后的情况。代码如下:#include <iostream>using names
2016-03-06 13:33:12 230
原创 POJ1088 滑雪
题意:见 http://poj.org/problem?id=1088思路: 这道题的第一想法就是利用回溯法遍历,以每个节点为起点都试一遍,但是肯定会超时。感觉这道题目像是动态规划和回溯结合了一下,大大减少了搜索次数。基本思路就是以每个节点为起始点进行遍历,在遍历的过程中记录所遍历节点能到达的最大长度,即 len[i][j]=max(向左走,向下走,向右走,向上走)+1对于已经
2016-03-01 18:59:53 250
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人