![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 60
燃烧橙
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 · 1408 阅读 · 0 评论 -
快速傅里叶转换 模版
#include #include #include #include #include using namespace std;const double PI = acos(-1.0);//复数结构体struct Complex{ double x,y;//实部和虚部 x+yi Complex(double _x = 0.0,double原创 2017-08-13 10:48:38 · 244 阅读 · 0 评论 -
树状数组 (从下标0计数)
先尝试画一个八个节点(下标0-7)的树状数组,下标用二进制。首先有8个未被支配的节点,他们的最后一位以010101交替出现,所以最后一位是1的节点支配最后一位是0的然后还剩下未支配的点001 011 101 111,他们倒数第二位以0101交替出现,所以倒数第二位是1的支配倒数第二位是0的还剩下未被支配节点011 111,由于倒数第三位以0,1交替出现,所以最后是倒数第原创 2017-08-15 21:11:18 · 1206 阅读 · 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 · 1032 阅读 · 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 · 498 阅读 · 0 评论