
算法
文章平均质量分 77
落天雨、、
夫君子之行 静以修身 俭以养德 非淡泊无以明志 非宁静无以致远
展开
-
并查集(Union-Find)算法介绍
并查集(Union-Find)算法介绍本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。更多的信息可以参考Algorithms 一书的Section 1.5,实际上本文也就是基于它的一篇读后感吧。原文中更多的是给出一些结论,我尝试给出一些思路上的过程,即为什么要使用这个方法,而不是别的什么方法。我觉得这个可能更加有意义原创 2014-03-05 14:52:51 · 774 阅读 · 0 评论 -
Dijkstra算法(单源最短路径)
Dijkstra算法(单源最短路径) 单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。一.最短路径的最优子结构性质 该性质描述为:如果P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中间顶点,那么P(k,s)必定是从k原创 2014-03-12 10:56:36 · 1098 阅读 · 1 评论 -
hdu 1203 解题报告 I NEED A OFFER!
1203 I NEED A OFFER!传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1203Problem DescriptionSpeakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多原创 2013-05-03 17:50:56 · 1367 阅读 · 0 评论 -
hdu 2058 解题报告 - The sum problem
hdu 2058 解题报告 - The sum problem传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2058等差求和公式:Sn=(a1+aN)*n/2 =(a1+a1+d(n-1))*n/2 =a1*n+d(n-1)*n/2;因为此处公差d=1,所以Sn=a1*n+(n-1)*n/2,当从第一项开始算原创 2013-04-22 16:41:37 · 3773 阅读 · 1 评论 -
杭电hdu1717 - 小数化分数2
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1717整数化小数,不循环的小数容易化。对于循环小数化分数原理如下:⑴ 把0.4747……和0.33……化成分数。例1: 0.4747……×100=47.4747…… 0.4747……×100-0.4747……=47.4747……-0.4747原创 2013-04-24 21:27:47 · 2617 阅读 · 2 评论 -
回溯法解决素数环
/***********************************************************************输入正整数n,把整数1,2,3……,n组成一个环,使得相邻两个整数之和均为素数,输出时从整数1开始逆时针排序.同一个环应恰好输出一次.n<==16样例输入:6样例输出:1 4 3 2 5 661 6 5 2 3 4分析:1、每个环都从1开原创 2013-04-30 09:08:26 · 12209 阅读 · 2 评论 -
hdu 1010 解题报告 ----Tempter of the Bone
hdu 1010 解题报告 ----Tempter of the Bone题意:输入一个n*m的迷宫,和一个T:可以在迷宫中生存的最大时间。S为起点,D为终点。并且,每个格子只能踩一次,且只能维持一秒,然后该块地板就会塌陷。所以你必须每秒走一步,且到D点时,所用时间为T。用深搜。本题要点:看是否能在所有可能的路中找到刚好满足条件(到达终点时门恰好打开)的路程,本题需要注意,单用原创 2013-05-06 18:15:26 · 1225 阅读 · 0 评论 -
hdu 1072 解题报告 ---- Nightmare
hdu 1072 解题报告 ---- Nightmare传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1072这题是一个BFS的题目,是对于每个结点进行四个方向的循环遍历行走。 要点:如果该结点被第二次访问,则需判断该点前次标记的剩余时间是否小于当前进入后时间,若不是则不走该点,防止无限循环。画模拟图可知其行走形式是从起点向外原创 2013-05-07 17:45:45 · 1063 阅读 · 0 评论 -
hdu 1087 解题报告 Super Jumping! Jumping! Jumping!
hdu 1087 Super Jumping! Jumping! Jumping!hdu 1087 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1087动态规划题/************************************************************************//*双重循环,里面一重求原创 2013-05-02 20:51:03 · 993 阅读 · 0 评论 -
hdu 2062 Subset sequence 解题报告
hdu 2062 Subset sequencehdu 2062传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2062 Problem Analyse 考虑一个集合 An = { 1, 2, ..., n}。比如,A1={1},A3={1,2,3}。我们称一个非空子集元素的排列为一个子集序列。对所有的子序列按字典顺序原创 2013-05-02 18:40:13 · 9666 阅读 · 2 评论 -
HDU 1728 解题报告 ---- 逃离迷宫
HDU 1728 逃离迷宫 http://acm.hdu.edu.cn/showproblem.php?pid=1728 对于代码32行,为什么等于不能随便剪掉 如果剪掉就会出现下图结果: 【假如转弯数k=1,起点终点如图】 那么如果你的代码是优先向右搜索就会出错 红色的线是先搜的,由于最多转一次弯,所以不合题意; 蓝色是后搜的,因为遇到转弯数相等所以不往下走了了,但是原创 2013-05-06 21:20:23 · 1059 阅读 · 0 评论 -
子集生成的两种方法
该算法来自--刘汝佳的算法竞赛入门经典。书中介绍了两种算法的核心代码,但却没有逐过程详细解说,另初学者看文字时很难看懂,遇到问题,是先要直接研究问题的细节呢还是先把问题搞清楚?我认为绝对应该先学习如何去解决问题,构造方法的框架,而不是先去研究细节。//方法一://思路:一次选出一个元素放到集合中#include using namespace std;原创 2013-04-29 22:01:01 · 5534 阅读 · 2 评论 -
hdu 1003 解题报告 ---- Max Sum
hdu 1003 解题报告 ---- Max Sum传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1003代码中两个if判断:(1)若当前序列之和sum大于max,则改变end坐标为当前坐标,max=sum(2)若sum#include #include int main(){ int m,n,k,temp;原创 2013-05-03 21:06:57 · 1414 阅读 · 0 评论 -
单链表快速排序算法实现
单链表快速排序算法实现算法思想:对于一个链表,以head节点的值作为key,然后遍历之后的节点,可以得到一个小于key的链表和大于等于key的链表;由此递归可以对两个链表分别进行快速。这里用到了快速排序的思想即经过一趟排序能够将小于key的元素放在一边,将大于等于key的元素放在另一边;面试回答:如果面试官问快速排序是否适合单链表,答案当然是不适合;但是如果问单链表原创 2014-03-10 13:42:42 · 2198 阅读 · 0 评论