算法
文章平均质量分 56
benTuTuT
这个作者很懒,什么都没留下…
展开
-
树状数组求区间和 golang实现
正在上传…重新上传取消原创 2022-03-02 22:12:24 · 291 阅读 · 0 评论 -
最长公共子序列
for(i=0;i<=n1;i++) dp[i][0]=0; for(j=0;j<=n2;j++) dp[0][j]=0; for(i=1;i<=n1;i++){ for(j=1;j<=n2;j++){ if(s1[i]==s2[j]){原创 2017-04-13 14:32:18 · 327 阅读 · 0 评论 -
对状压dp的一点理解
博主是初学者,一下紧代表个人观点,若有错误欢迎指出。状压dp 此dp可以理解为最暴力的dp,因为他需要遍历每个状态,所以将会出现2^n的情况数量,所以明显的标志就是数据不能太多(好像是for(s=1;s<(1<<15);s++){ for(i = n-1 ; i >=0;i--) { tem=1<<i;原创 2017-04-12 21:51:36 · 5090 阅读 · 0 评论 -
单调队列优化dp
单调队列优化dp原创 2017-09-04 20:41:59 · 1314 阅读 · 0 评论 -
斜率优化dp
斜率优化dp(待填坑。。。)原创 2017-09-05 21:56:55 · 339 阅读 · 0 评论 -
堆排序及C++实现
堆排序:1.构建最大堆。2.取出当前堆顶(即待排序数组中最大的元素)3.将取出后的堆重新调整为标准最大堆。(由于原堆只改变了堆顶,只对堆顶进行下放即可恢复最大堆,需注意由于取出元素,堆的大小变小)4.重复2、3,直到所有数被取出。void adjust_heap(int arr[],int now,int siz){ int left=now*2+1; ...原创 2019-03-05 10:41:36 · 177 阅读 · 0 评论 -
快速排序及C++实现
1.挑选一个基准值2.小于基准值的数放在大于基准值的数的左边3.将基准值放入中间,即两种数分界的地方,根据挑选的基准值决定如何插入。4.此时,基准值左边的区间小于等于基准值,基准值小于等于右边的区间,这三段有序,但内部无序,所以,将基准值左右两端继续进行快速排序,直到区间长度为1。是一个递归的过程。void quick_sort(int arr[],int left,int...原创 2019-03-05 11:31:21 · 1520 阅读 · 0 评论