![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 51
燃烧橙
2019年南京邮电大学本科软件工程(嵌入式培养)毕业
寻实习
算法/JavaWeb方向
展开
-
n个球m个不同的桶每个桶容量有限,求所有放置方法。
设dp[i][j]为使用仅仅第1,2,3...i个桶里放入j个球共有多少种放置方法。当dp[i][j]中有空桶时,放置方法的数量为dp[i-1][j]当dp[i][j]中没有空桶时原创 2017-05-18 21:35:18 · 1402 阅读 · 0 评论 -
最长单调递增子序列的长度
一个数组p[],长度plen,求其中最长单调递增子序列。定义数组up[],up[i]表示长度为i的单调递增子序列中最后一位元素最小为up[i]。定义uplen表示最长的子序列长度up[]必然是单调递增的证明:若对于0up[i+1],那么对于长度为i+1的子序列,只要去掉其中任意一个元素,就可以得到长度为i的子序列并且该子序列最后一位元素小于up[i],与up[i]定义矛盾,得证。原创 2017-07-10 17:14:36 · 1026 阅读 · 0 评论 -
Floyd(改)不断往里加点过程中更新距离
Floyd可以求多源最短路径。但是有时候需要往图内加点,每加一个点,都需要更新一次图,如果整个重新跑一遍太慢,所以可以用Floyd的思想快速更新。n个点,p[i][j]表示i到j距离。void addpoint(){ //新加入的点编号index=n,旧的点编号0到n-1 int index=n; //更新index到各个点的距离 for(int i=0;i<n;原创 2017-10-08 00:33:18 · 492 阅读 · 0 评论