摘要:
lower_bound(a,a+n,i)函数 返回从数组a到a+n中第一个>=i的元素地址 upper_bound(a,a+n,i)函数 返回从数组a到a+n中第一个>i的元素地址 阅读全文
摘要:
时间复杂度为〇(nlogn)的算法,下面就来看看。 我们再举一个例子:有以下序列A[]=3 1 2 6 4 5 10 7,求LIS长度。 我们定义一个B[i]来储存可能的排序序列,len为LIS长度。我们依次把A[i]有序地放进B[i]里。(为了方便,i的范围就从1~n表示第i个数) A[1]=3, 阅读全文
摘要:
输入一个链表,反转链表后,输出新链表的表头 阅读全文
摘要:
#include long long PowerMod (long long a, int b, int c) { int ans = 1; a = a % c; while(b>0) { if(b % 2 == 1) ans = (ans * a) % c; ... 阅读全文
摘要:
表:具有固定列数和任意行数。 数据库:一些关联表的集合。 主键:一个数据表只能包含一个主键,使用主键来查询数据。 外键:用来关联两张表。 索引:快速访问数据库表的特定信息,索引是对数据库表一列和多列的值进行排序的一种数据结构。 DDL:数据定义语言:定义数据库对象:创建库,表,列等。 DML:数据操 阅读全文
摘要:
用solve(m,n)来解决m个苹果放在n个盘子里的放法,因为这个问题包含有子问题可以划分为至少一个盘子不为空的放法加上每个盘子都不能为空的放法的和。所以可以用递归解决, 另外n>m时可以将n转化成m,因为多余苹果的数量的盘子是不影响方法数量的,最后判断递归结束的条件就是盘子为1个时,只有一种放法, 阅读全文
摘要:
采用优先队列优化 #include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; const int maxm=1e6+10; int head[maxn],ver[maxm],edge[maxm],nxt[maxm],d[ma 阅读全文
摘要:
Hello.java 整数类型:byte(1B),short(2B),int(4B),long(8B) 浮点类型:float(4B),double(8B) 字符类型:char(2B) 布尔类型:boolean 与运算特点:把某些位保留下来,其余位全部置0 或运算特点:把某些位保留下来,其余位全部置1 阅读全文
摘要:
刚才练习了一下手写堆, 以后忘记扫一眼。 支持插入元素,寻找最大,最小值的数据结构称为优先队列, 堆是优先队列的一种实现 阅读全文
摘要:
可以用队列实现二叉树的层次遍历 阅读全文
摘要:
最近复习了一下链表,觉得应该保留一下自己的代码, 以后忘记了扫一眼。 指针链表 数组模拟链表(效果同上) 双向链表 阅读全文
摘要:
普通离散化缺点: 例子一:1-10 1-4 5-10普通离散化后都变成了[1,4][1,2][3,4] 线段2覆盖了[1,2],线段3覆盖了[3,4],那么线段1被完全覆盖,而实际并没有覆盖。 解决方法:离散化时,要对相邻的数字,在离散化时中间加一个数字 阅读全文
摘要:
一维前缀和 作用:快速查询数组a[l]~a[r]的和,时间复杂度为o(1)。 求法:例如数组a[],用一个数组sum[]来记录它的前n项和,例如sum[n]表示a[1]+a[2]+...+a[n]。 1 int sum[1000]; 2 void init() 3 { 4 for(int i=1; 阅读全文