摘要: 数据结构 栈,队列,链表 •哈希表,哈希数组 •堆,优先队列 双端队列 可并堆 左偏堆 •二叉查找树 Treap 伸展树 •并查集 集合计数问题 二分图的识别 •平衡二叉树 •二叉排序树 •线段树 一维线段树 二维线段树 •树状数组 一维树状数组 N维树状数组 •字典树 •后缀数组,后缀树 •块状链 阅读全文
posted @ 2018-08-10 14:48 小学弟- 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 归并排序也是一种常用的排序算法, 其时间复杂度为O(n*logn), 它的基础是分治的思想。 其基本思路就是把数组分成两组A,B, 如果这两组内的数据都是有序的, 那么就可以很方便的对这两组数据进行合并排序。 但是如何让这两组数据有序呢? 归并法的思想就是把A,B两组各自再分成两组, 依次类推, 当分出来的小组数据只有一个的时候, 即可以认为小组数据已经达到了有序。 然和合并相邻的两个小组就OK... 阅读全文
posted @ 2018-08-10 14:36 小学弟- 阅读(95) 评论(0) 推荐(0) 编辑
摘要: #堆排序升序: #include #include #include using namespace std; #define parent(i) (i)/2 #define left(i) 2*(i) #define right(i) 2*(i)+1 int size; void heapify(int a[], int i) { int l = left(i), r = ... 阅读全文
posted @ 2018-08-10 14:35 小学弟- 阅读(76) 评论(0) 推荐(0) 编辑
摘要: #include int a[101],n;//定义全局变量,这两个变量需要在子函数中使用 void quicksort(int left,int right) { int i,j,t,temp; if(left>right) return; temp=a[left]; //temp中存的就是基准数 i=left; j=righ... 阅读全文
posted @ 2018-08-10 14:34 小学弟- 阅读(113) 评论(0) 推荐(0) 编辑
摘要: #include #include "cstring" #include "string" using namespace std; const int L=10000; int main(){ int i,n,a[L],num[L+1],Size; int T; cin>>T; while (T--) { cin>>n; ... 阅读全文
posted @ 2018-08-10 14:31 小学弟- 阅读(92) 评论(0) 推荐(0) 编辑
摘要: Problem Description 学会了单向链表,我们又多了一种解决问题的能力,单链表利用一个指针就能在内存中找到下一个位置,这是一个不会轻易断裂的链。但单链表有一个弱点——不能回指。比如在链表中有两个节点A,B,他们的关系是B是A的后继,A指向了B,便能轻易经A找到B,但从B却不能找到A。一个简单的想法便能轻易解决这个问题——建立双向链表。在双向链表中,A有一个指针指向了节点B,同时,B... 阅读全文
posted @ 2018-08-10 14:27 小学弟- 阅读(75) 评论(0) 推荐(0) 编辑
摘要: Problem Description n个人想玩残酷的死亡游戏,游戏规则如下: n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。 请输出最后一个人的编号。 Input 输入n和m值。 Output 输出胜利者的编号。 Example Input 5 3 Example Output 4 Hint 第一轮:3... 阅读全文
posted @ 2018-08-10 14:26 小学弟- 阅读(136) 评论(0) 推荐(0) 编辑
摘要: Problem Description 按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个)。 Input 第一行输入元素个数n; 第二行输入n个整数。 Output 第一行输出初始链表元素个数; 第二行输出按照逆位序所建立的初始链表; 第三行输出删除重复元素后的单链表元素个数; 第四行输出删除重复元素后的单链表。 Example I... 阅读全文
posted @ 2018-08-10 14:25 小学弟- 阅读(576) 评论(0) 推荐(0) 编辑
摘要: Problem Description 输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数。两个子链表中数据的相对次序与原链表一致。 Input 第一行输入整数N;; 第二行依次输入N个整数。 Output 第一行分别输出偶数链表与奇数链表的元素个数; 第二行依次输出偶数子链表的所有数据; 第三行依次输出奇数子链表的所有数据。... 阅读全文
posted @ 2018-08-10 14:22 小学弟- 阅读(1688) 评论(0) 推荐(0) 编辑
摘要: 任意一个大于1的正整数都能表示成若干个质数的乘积,且表示的方法是唯一的。换句话说,一个数能被唯一地分解成质因数的乘积。因此这个定理又叫做唯一分解定理。 阅读全文
posted @ 2018-08-10 14:19 小学弟- 阅读(1302) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define maxn 205 int d[6][3]={{1,0,0},{-1,0,0}... 阅读全文
posted @ 2018-08-10 14:15 小学弟- 阅读(230) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #define N 10000 int main() { char str[N]; int len;int i; int mod; int ans=0; int Case; scanf("%d",&Case); while(Case--){ scanf("%s",str); ... 阅读全文
posted @ 2018-08-10 12:22 小学弟- 阅读(104) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #include using namespace std; typedef long long ll; ll ksm(ll a, ll b, ll c) { ll ans=1; a=a%c; while(b>0) { if(b%2==1) ans=(an... 阅读全文
posted @ 2018-08-10 12:21 小学弟- 阅读(99) 评论(0) 推荐(0) 编辑
摘要: #include using namespace std; #include #include void sqrt(char *str) { double i,r,n; int j,l,size,num,x[1005]; size=strlen(str); if (size==1&&str[0]=='0') { cout=size)... 阅读全文
posted @ 2018-08-10 12:05 小学弟- 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 大数除法,应该算是四则运算里面最难的一种了。不同于一般的模拟,除法操作步数模仿手工除法,而是利用减法操作实现的。 其基本思想是反复做除法,看从被除数里面最多能减去多少个除数,商就是多少。 逐个减显然太慢,要判断一次最多能减少多少个整的10的n次方。 以7546除23为例。 先减去23的100倍,就是2300,可以减3次,余下646。 此时商就是300; 然后646减去23的10倍,就是230... 阅读全文
posted @ 2018-08-10 12:04 小学弟- 阅读(331) 评论(0) 推荐(0) 编辑
摘要: #include #include #include void reverseOrder(char* str, int p, int q) { char temp; while(p < q) { temp = str[p]; str[p] = str[q]; str[q] = temp; p ++; ... 阅读全文
posted @ 2018-08-10 12:02 小学弟- 阅读(92) 评论(0) 推荐(0) 编辑
摘要: #include #include #include // 功能:实现两个大数减法运算 // 参数:source1--被减数 // source2--减数 // result --计算结果 // 返回值:计算结果为正数,返回'+',否则返回'-' char Minus(char *source1, char *source2, char *result) { ... 阅读全文
posted @ 2018-08-10 12:01 小学弟- 阅读(155) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #include using namespace std; string bigmun(string a,string b){ string c; reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); char ans[2... 阅读全文
posted @ 2018-08-10 12:00 小学弟- 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 架构: C/S架构:充分发挥PC机的性能 B/S架构:统一了应用接口,隶属于C/S架构 物理地址:mac,全球唯一,类似于一个身份证 ip地址:四位点分十进制 8位点分二进制 (要求:二进制,十六进制,十进制) arp协议:通过目标ip地址,获取目标mac地址 OSI五层模型: 应用层 http协议 阅读全文
posted @ 2018-08-10 08:23 小学弟- 阅读(100) 评论(0) 推荐(0) 编辑