theArcticOcean

博观而约取,厚积而薄发

排序:
默认
按更新时间
按访问量

用C学习线性表

线性表是n个数据元素组成的有限序列,按照存储的方式分为顺序和链式。今天用C对顺序和链式分别做点练习。 (下面有很大一部分的代码是用vim写的,贴到博客上就有些格式问题了,不知道怎么解决。。)纯C+顺序表 完成迷你选座系统谁说简单数组不强大? 用简单的数组完成小型的选座系统建设:#include...

2016-06-29 11:45:47

阅读数:447

评论数:0

基础排序算法

七个基础排序算法(均为内部排序): 直接插入排序 希尔排序 冒泡排序 简单选择排序 快速排序 堆排序 二路归并排序排序算法稳定性:经过排序后,具有相同关键码的元素之间的相对次序保持不变,则称该排序方法是稳定的;否则不稳定。直接插入排序:void InsertSort(int a[],...

2016-03-27 21:09:26

阅读数:1072

评论数:2

树状数组求解逆序数

数列的逆序数可以使用归并排序求解,亦可以使用树状数组解决。现在献上两题,用树状数组求解逆序数。 POj 2299 Ultra-QuickSort http://poj.org/problem?id=2299 大意:一个排列经过多少次交换能够成为排好序的结果。 分析:之前用归并排序做过,这次练习数...

2016-03-19 18:43:08

阅读数:360

评论数:0

初识单调栈

问题是新的解决之道的催化剂。一个看似简单的题目我写了好几个小时,实在完成不了,查了查,原来需要用到传说中的单调栈。于是,学了一些皮毛。练习了几道。 51nod 1437 迈克步 http://www.51nod.com/onlineJudge/questionCode.html#!problem...

2016-02-26 15:38:32

阅读数:402

评论数:0

codeforces 301D. Yaroslav and Divisors(遍历和排序的艺术)

http://codeforces.com/problemset/problem/301/D 大意:给定一串数字,然后有m个询问,每一个询问问从l到r一共有多少对整除关系? 一个数i的在1——n内的倍数的个数是 n/i 那么,1-i的倍数个数有: f(1,i)=n/1+n/2+n/3+…...

2015-12-23 23:53:59

阅读数:682

评论数:0

树状数组

树状数组的组成结构: 树上结点C和A数组的关系: C结点管辖的区域是,其中k是结点下标二进制末尾0的个数计算: int lowbit(int a){ return a&(a^(a-1)); //return a&(-a); } 则对于一颗子树,父节点和子节点的区...

2015-12-12 19:12:46

阅读数:490

评论数:0

约瑟夫环

问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后[1]  结果+1即为原问题的解。 用循...

2015-09-16 21:02:49

阅读数:312

评论数:0

poj 1028 Web Navigation(模拟)

题目:http://poj.org/problem?id=1028 Web Navigation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 31299   Accepted...

2015-09-07 20:24:37

阅读数:371

评论数:0

hdu 1237 简单计算器(数组模拟栈,队列)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1237 简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota...

2015-09-06 10:01:52

阅读数:482

评论数:0

hdu 4902 Nice boat(线段树区间更新lazytag·单点更新)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4902 Nice boat Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Oth...

2015-08-31 20:30:04

阅读数:547

评论数:0

poj 1823 Hotel(线段树·区间更新·lazy tag)

题目:http://poj.org/problem?id=1823 Hotel Time Limit: 5000MS   Memory Limit: 30000K Total Submissions: 2398   Accepted: 1051 ...

2015-08-29 20:57:34

阅读数:445

评论数:0

hdu 2852 KiKi's K-Number(线段树单点更新)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2852 Problem Description For the k-th number, we all should be very familiar with it. Of course,to kik...

2015-08-08 23:56:56

阅读数:391

评论数:0

hdu 4006 The kth great number(线段树 || 优先队列)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4006 求一个数字序列的第K大的值。先输入两个数字n,k,接着是n行输入,I表示加入新的数字,Q是询问第k大的数字。 Sample Input 8 3 I 1 I 2 I 3 Q I 5 Q I 4 ...

2015-08-08 18:17:11

阅读数:369

评论数:0

poj 2828 Buy Tickets(动态队列·线段树单点更新)

题目:http://poj.org/problem?id=2828 大意:一群人排队,第i个人来到队伍中站到处于posi的人的右边,且每个人都有不同的表示值,问最终的结果? Sample Input 4 0 77 1 51 1 33 2 69 4 0 20523 1 19243 1 3890 0...

2015-08-08 13:17:22

阅读数:407

评论数:0

hdu 1698 Just a Hook(线段树区间更新·经典)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1698 数据:case,n,q,q行x,y,z。在长度为n的hook上进行q次区间更新,把它们的价值改变。最后统计总的价值。x,y,z分别表示把[x,y]内的hook变成价值为z的hook。

2015-08-07 22:29:13

阅读数:382

评论数:0

poj 3667 Hotel(线段树区间更新)

题目:http://poj.org/problem?id=3667 大意:有N个房间,给出M条语句,“1  a”表示要求查询是否存在连续的a个空的房间,有的话输出最左边的一个,没有的话输出0。“2 a b"表示把从a开始的b个房间清空。 Sample Input 10 6 1 3 1 ...

2015-08-07 17:13:18

阅读数:413

评论数:0

set四个集合操作&&红黑树初识

了解红黑树: 首先说说二叉查找树。二叉查找树的重要性质:任何节点的键值一定大于其左子树中每一个节点的键值,并小于其右子树中每一个节点的键值。在极端情况下,当所有节点位于一条链上时,二叉查找树的操作时间为O(N)。沿树的左边向下走,能够找到最小值。沿着树的右边走能够找到最大值。 和二叉搜索树一样...

2015-07-20 19:54:55

阅读数:716

评论数:0

哈夫曼树构造及编码

哈夫曼树: 树的带权路径长度是树中所有叶子结点的带权路径长度之和。一组具有确定权值的叶结点可以构成多个带权二叉树。带权路径长度最小的二叉树就称作最优二叉树,或者哈夫曼树。通过实践可以发现,哈夫曼树总是把权值大的叶结点放在靠近根结点的地方,权值小的结点放在深度大的地方。哈夫曼算法给出了构造哈夫曼树...

2015-06-22 23:42:20

阅读数:2367

评论数:0

二叉树的四种遍历

二叉树的遍历:前序遍历,中序遍历,后序遍历,层次遍历。不同的遍历方式有时是解决某些问题的有效工具,比如一个计算表达式以中序存储在二叉树中,用前序遍历可以得到前缀表达式(波兰表达式),后序遍历可以得到后缀表达式(逆波兰表达式)。而最能直观展现树的二维图形的遍历则是层次遍历。下面是自己的实现代码: ...

2015-06-21 20:19:26

阅读数:508

评论数:0

求解逆波兰表达式的值,回文数字的判断&&栈的应用

常规数学表达式的前缀表达式称为波兰表示式,后缀表达式又称逆波兰表达式。对于逆波兰表达式的求解可借助于栈,把数字全部压入栈中,遇到计算符号再弹出两个数,计算结果压入栈中,重复这个过程,最后的数字就是计算结果。 例子: 3-(4+8/2)*3=-21    48/3+12-6*2+7=23 输入文...

2015-06-21 15:30:48

阅读数:659

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭