- 博客(12)
- 收藏
- 关注
原创 DP
1.:[钢条切割问题](https://www.cnblogs.com/mengwang024/p/4342796.html)都是分为r(n)=r(i)+r(n-i)(1)自上而下递归:调用函数,传入n-i,找到最大的r(n)向上返回,记忆化r(n)相当于树型结构,从最大的找到最小的,层层向上返回。(2)自下向上递推,相当于横表,找到比i小的前j中,最优方案,12关于重构解(输出方案):转移的时候记录最优子结构的位置。再做一个数组记录最优的j,向前找坐标2矩阵链乘法
2020-12-29 23:27:27 70
原创 关于二分
1.电缆主存在问题:1.循环条件是left<=right还是<2.满足判断条件后,left该是=mid-1还是mid合适,right同理#include<stdio.h>#include<bits/stdc++.h>#define N 10001using namespace std;int a[N];int n;int f(int len){ int i,c=0; for(i=1;i<=n;i++){ c+=a[i]/len; }
2020-12-29 15:00:22 50
原创 CSDN-markdown编辑器
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2020-12-14 09:52:00 130
原创 排序
排序——查找的预处理,降低时间复杂度一.具体排序实现1.选择排序选择排序(英语:Selection sort)是排序算法的一种,它的工作原理是每次找出第 i 小的元素(也就是 A(i~n)中最小的元素),然后将这个元素与数组第 个位置上的元素交换。不稳定,时间复杂度是O(n^2)void selection_sort(int* a, int n) { for (int i = 1; i < n; ++i) { int ith = i; for (int j = .
2020-12-10 00:11:44 114
原创 2021-01-22分治
力扣分治练习1.数组中第K个最大元素(1)方法一:堆 维护一个堆,时间复杂度O(nlogk),调整堆O(logk),空间复杂度O(k) 1.小根堆: 堆内只有k容量,一旦超过就把最小的(即队首元素推出),遍历完数组后只剩下最后k大的数,队首元素是第k大数2.大根堆: 做k-1次删除后,队首元素即为第k大stl实现class Solution {public: int findKthLargest(vector<int>& nums, in
2020-12-09 22:32:33 62
原创 枚举、
1.枚举熄灯问题解析1 熄灯问题解析2自己写的代码:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#include <map>#include <algorithm>#include<cstring>#include<iostream>using namespace std;int a
2020-12-09 11:00:26 46
原创 函数模板、重载操作符
1.Template//函数模板template <typename T>T qp(T a,ll n){ T ans=1; while(n){ if(n&1) ans*=a; a*=a; n>>=1; } return ans;}int main(){ int a=qp<int>(2,3); cout<<a<<endl;}2.重载操作符3,内联函数4.结构体构造函数...
2020-12-05 19:53:33 91
原创 约瑟夫问题、圆桌问题
为了方便,我们设一开始的 n n n 个人的编号为 0 0 0 ~ n − 1 n-1 n−1。那么把第 k k k 个人干死之后(注意,第 k k k 个人的编号应该是 k − 1 k-1 k−1),队伍变成了:k , k + 1 , k + 2 , ⋯   , n − 2 , n − 1 , 0 , 1 , ⋯ k,k+1,k+2,\cdots,n-2,n-1,0,1,\cdots k,k+1,k+2,⋯,n−2,n−1,0,1,⋯然后会从第 k k
2020-12-03 13:39:18 277 1
原创 pta第二章题
头指针是指向链表中第一个结点的指针,对单链表的所有操作均需从头指针开始。链表中的第一个结点可以是头结点,也可以是首结点。首结点是链表中存储第一个数据元素的结点。头结点是在首结点之前附设的一个结点,该结点不存储数据元素,其指针域指向首结点。头结点的作用是为了方便对链表的操作。保证链表中每个元素都有一个前驱。如果没有头结点,在表头插入一个元素和在表的其他地方插入一个元素的方法是不同的。由于起始结点没有直接前驱,所以在表头插入一个结点是需要将该结点的后继指针指向原来的表头,并将新插入的结点设为表头。而在其他
2020-12-03 13:38:48 1559
原创 树状数组
1.树形数组2.树形数组3.这里利用的负数的存储特性,负数是以补码存储的,对于整数运算 x&(-x)有● 当x为0时,即 0 & 0,结果为0;●当x为奇数时,最后一个比特位为1,取反加1没有进位,故x和-x除最后一位外前面的位正好相反,按位与结果为0。结果为1。●当x为偶数,且为2的m次方时,x的二进制表示中只有一位是1(从右往左的第m+1位),其右边有m位0,故x取反加1后,从右到左第有m个0,第m+1位及其左边全是1。这样,x& (-x) 得到的就是x。●当x
2020-12-03 13:35:19 157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人