
算法
文章平均质量分 78
The_sam
这个作者很懒,什么都没留下…
展开
-
动态规划==》京东机2017实习生考题,通过概率
题目描述 小明同学要参加一场考试,考试一共有n道题目,小明必须做对至少60%的题目才能通过考试。考试结束后,小明估算出每题做对的概率,p1,p2,...,pn。你能帮他算出他通过考试的概率吗?输入输入第一行一个数n(1样例输入450 50 50 50输出小明通过考试的概率,最后结果四舍五入,保留小数点后五位。样例输出0.31250时间限制C/C++语言:1000MS其它语言:原创 2017-04-07 21:52:26 · 756 阅读 · 0 评论 -
ACM 粗心永远AC不了系列——HDU 1754 I Hate It|线段树区间求最值
线段树应用水题之一一:线段树基本概念1:概述线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(lgN)!性质:父亲的区间是[a,b],(c=(a+b)/2)左儿子的区间是[a,c],右儿子的区间是[c+1,b],线段树需要的空间为数组大小的四倍原创 2017-04-29 13:30:36 · 550 阅读 · 0 评论 -
ACM 粗心永远AC不了系列——小Hi的烦恼|“五维数点”问题
问题来源:hiho一下第147周 小Hi的烦恼题目1 : 小Hi的烦恼时间限制:5000ms单点时限:1000ms内存限制:1024MB描述小Hi从小的一大兴趣爱好就是学习,但是他发现尽管他认真学习,依旧有学神考的比他好。小Hi在高中期间参加了市里的期末考试,一共五门:语文、数学、英语、物理、化学。成绩出来之后,小原创 2017-04-29 18:02:55 · 621 阅读 · 0 评论 -
动态规划入门==》转换为DAG问题——钢条切割
问题描述: 一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi。那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大。如一个Pi如下:1.数据结构表示DAG,我们可以把它想象成DAG,每个长度想象成一个点,i>j 则i可以指向j,代价为上图(i-j)对应数值,结果就是求最长路径。2.问题小化,即求出前原创 2017-04-06 18:38:41 · 823 阅读 · 0 评论 -
ACM 粗心永远AC不了系列——Demo Day|三维DP问题,机器人寻路,hiho一下第150周
题目来源:https://hihocoder.com/contest/hiho150/problem/1时间限制:10000ms单点时限:1000ms内存限制:256MB描述You work as an intern at a robotics startup. Today is your company's demo day. During t原创 2017-05-15 13:13:36 · 699 阅读 · 0 评论 -
算法导论——26.2 FordFulkerson方法,Edmonds-Karp算法java实现
介绍由Ford 和Fulkerson于1956年提出最大流问题的标号算法,故又称 Ford–Fulkerson标号法。其基本思想就是,从一个可行流开始,寻找从s到t的增广链,然而沿增广链增加流量,反复这样,直到找不出增广链位置。更多内容参见博文http://blog.youkuaiyun.com/smartxxyx/article/details/9293665这里值得注意的是,这个方法各种实现算原创 2017-05-09 14:23:35 · 1580 阅读 · 1 评论 -
算法导论——24.3 Dijkstra最短路径算法java实现
Dijkstra算法是由荷兰计算机科学家狄克斯特拉(Dijkstra)于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。 其基本原理是:每次新扩展一个距离最短的点,更新与其相邻的点的距离。当所有边权都为正时,由于不会存在一个距离更短的没扩展过的点,所以这个点的距离永远不会再被改变,因而保证了算法的正确性。不过根据这个原理,用Dijkstra求最短路的图不能有负权边,因为扩展到负权边的时候会产生更短的距离,有可能就破坏了已经更新的点距离不原创 2017-05-09 00:44:33 · 1173 阅读 · 0 评论 -
算法导论——24.2 DAG最短路径算法java实现
Bellman-Ford算法能在更普遍的情况下(存在负权边)解决单源点最短路径问题,但是对于DAG,可以有更加简化的算法去计算,使得时间复杂度更低。针对DAG的特点,以拓扑排序为基础,提出了解决DAG的最短路径问题的简单算法。通过理论分析,表明该算法具有理想的运算效率,其中,解决单源点问题的运算时间与E成正比,解决所有点对问题的运算时间与VE成正比。拓扑排序策略对于此类最短路径问题的研究,较传统的方法运算简单、求解直观。原创 2017-05-08 23:43:45 · 2789 阅读 · 0 评论 -
算法导论——24.1 BellmanFord算法java实现
Bellman - ford算法是求含负权图的单源最短路径算法,效率很低,但代码很容易写。其原理为持续地进行松弛(原文是这么写的,为什么要叫松弛,争议很大),在每次松弛时把每条边都更新一下,若在n-1次松弛后还能更新,则说明图中有负环,因此无法得出结果,否则就完成。Bellman - ford算法有一个小优化:每次松弛先设一个标识flag,初值为FALSE,若有边更新则赋值为TRUE,最终如果还是FALSE则直接成功退出。Bellman-ford算法浪费了许多时间去做没有必要的松弛,而SPFA算法用队列进行原创 2017-05-08 21:43:11 · 2390 阅读 · 0 评论