上一页 1 2 3 4 5 6 7 ··· 16 下一页
摘要: deque,全名double-ended queue 是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列是限定插入和删除操作在表的两端进行的线性表。这两端分别称做端点1和端点2。也可像栈一样,可以用一个铁道转轨网络来比喻双端队列。在实际使 阅读全文
posted @ 2019-10-30 19:42 月亮茶 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 1 Description 2 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 3 1.插入 x 数 4 2.删除 x 数(若有多个相同的数,应只删除一个) 5 3.查询 x 数的排名(排名定义为比当前数小的数的个数 。若有多个相同的数,因输出最小的排名) 6 4.查询 阅读全文
posted @ 2019-10-30 11:47 月亮茶 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 首先,vector与deque不同,其内存占用空间只会增长,不会减小。比如你首先分配了10,000个字节,然后erase掉后面9,999个,则虽然有效元素只有一个,但是内存占用仍为10,000个。所有空间在vector析构时回收。 empty()是用来检测容器是否为空的,clear()可以清空所有元 阅读全文
posted @ 2019-10-21 21:44 月亮茶 阅读(3433) 评论(0) 推荐(1) 编辑
摘要: vector相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时, 用其来解决问题可以达到最大节约空间的目的. 就是常数很大,但要是开了O2,一切都不是问题。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但 阅读全文
posted @ 2019-10-21 21:36 月亮茶 阅读(1146) 评论(0) 推荐(1) 编辑
摘要: int =>4 B long long =>8 B double => 8 B char => 1B eg: int a[1000]; sizeof(a)=1000*4/1024/1024 MB 1B=8 bit 1KB=1024B 1MB=1024KB 1GB=1024MB 阅读全文
posted @ 2019-10-19 21:39 月亮茶 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 耗费时间:O(1)<O(logn)<O(n)<O(nlogn)<O(n²)<O(n³)<O(2^n)<O(n!)<O(n^n) 一般竞赛中算时间复杂度都是找for循环最多的来算,或者看你所用的某个主要算法 一般10^8算一秒,但是还有常数(简单计算的话忽略常数,但是要想不TLE的话还是要看看自己的程 阅读全文
posted @ 2019-10-19 21:24 月亮茶 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 1 inline int read() 2 { 3 int x=0,w=1;char ch=0; 4 while(!isdigit(ch)){if(ch=='-') w=-1;ch=getchar();} 5 while(isdigit(ch)) x=(x<<3)+(x<<1)+ch-'0',ch=getchar(); 6 return x*w; 7 } 8 int buf[30]; 9 void 阅读全文
posted @ 2019-10-19 21:11 月亮茶 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 问题描述 已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌上。 指定编号为k的人开始从1报数,数到m的那个人出列; 出列那个人的下一位又从1开始报数,数到m的那个人出列; 以此规则重复下去,直到圆桌上的人全部出列 做法一: 简单的用链表模拟 显而易见,复杂度O(n^m) 做法二: 递 阅读全文
posted @ 2019-10-19 20:17 月亮茶 阅读(1746) 评论(0) 推荐(1) 编辑
摘要: Kruskal算法的时间复杂度为O(ElogE)E为边数 Kruskal算法是基于贪心的思想得到的。 首先我们把所有的边按照权值先从小到大排列,接着按照顺序选取每条边, 如果这条边的两个端点不属于同一集合,那么就将它们合并,直到所有的点都属于同一个集合为止。 至于怎么合并到一个集合,那么这里我们就可 阅读全文
posted @ 2019-10-13 15:05 月亮茶 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 1 void dfs(int x) 2 { 3 if(x>n) 4 { 5 for(int i=1;i<=n;++i) cout<<a[i]; 6 cout<<endl; 7 return; 8 } 9 for(int i=1;i<=n;++i) 10 { 11 if(!v[i]) 12 { 13 阅读全文
posted @ 2019-10-13 13:28 月亮茶 阅读(183) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 16 下一页