//顺序队列操作
#defineQUEUEMAX15
typedefstruct
{
DATAdata[QUEUEMAX];//队列数组
inthead;//队头
inttail;//队尾
}SeqQueue;
SeqQueue*SeqQueueInit()
{
SeqQueue*q;
if(q=(SeqQueue*)malloc(sizeof)(SeqQueue))//申请保存队列的内存
{
q->head=0;//设置队头
q..
分类:
其他好文 时间:
2015-04-28 18:48:44
阅读次数:
127
//循环队列
//CycQueue.h
#defineQUEUEMAX15
typedefstruct
{
DATAdata[QUEUEMAX];//队列数组
inthead;//队头
inttail;//队尾
}CycQueue;
CycQueue*CycQueueInit()
{
CycQueue*q;
if(q=(CycQueue*)malloc(sizeof(CycQueue)))//申请保存队列的内存
{
q->head=0;//设..
分类:
其他好文 时间:
2015-04-28 18:44:35
阅读次数:
128
//循环队列
//CycQueue.h
#defineQUEUEMAX15
typedefstruct
{
DATAdata[QUEUEMAX];//队列数组
inthead;//队头
inttail;//队尾
}CycQueue;
CycQueue*CycQueueInit()
{
CycQueue*q;
if(q=(CycQueue*)malloc(sizeof(CycQueue)))//申请保存队列的内存
{
q->head=0;//设..
分类:
其他好文 时间:
2015-04-28 18:42:40
阅读次数:
134
分析:取出水量最少的节点进行扩展,这样的程序只需要把队列queue换成优先队列priority_queue,其他部分的代码不变,下面的代码把状态(三元组)和dist合起来定义为一个Node类型,是一种常见的写法,如果要打印路径,需要把访问过的所有节点放在一个nodes数组中,然后在Node中加一个变量fa,表示父节点在nodes数组中的下标,而在队列中只存在节点在nodes数组中的下标而非节点本身...
分类:
其他好文 时间:
2015-04-28 18:39:24
阅读次数:
146
什么是树状数组???
树状数组就是把一个一般的数组弄成一个像树一样的结构!
如图:(图片来自百度)
刚开始是数组A,经过变换后,C[1]=A[1], C[2]=A[1]+A[2],C[3]=A[3],C[4]=A[1]+A[2]+A[3]+A[4] 等等;
为什么要把好好的数组变成这样呢?
这要从树状数组所要解决的问题说起,树状数组所要解决的就是求数组某一个区间的和的问题,如果不...
分类:
编程语言 时间:
2015-04-28 18:38:51
阅读次数:
140
思想:
1.首先生成1到n的数组A
2.生成1到n^3的n个数的随机数组P
例如A= P=
3.对p数组进行从小到大的排序(利用快速排序),生成数组P1=
4.根据3中P1的顺序,生成随机数数组A1=
代码:
#include
#include
#include
//快速排序,平均时间复杂度o(nlog2n),最好为o(log2n),最坏为o(n2).是不稳定排序( 交换排序)...
分类:
编程语言 时间:
2015-04-28 18:37:43
阅读次数:
183
在LED行业中,一般一个灯亮或者不亮用一个bit位来表示(这里就不谈七彩或者灰度控制卡),现在加入我们屏幕大小是128点,相当于宽度16个字节,如果我们让两个汉字居中显示(两个汉字占宽度4个字节),轻轻松松就可以算出如果要实现居中,只要偏移(16 - 4) / 2 = 6个字节宽度,当然这里我们都是假象的理想情况,假如需要显示的字符宽度不是固定并且显示内容也经常变化,这种情况下,无法手动计算。本文...
分类:
编程语言 时间:
2015-04-28 18:35:25
阅读次数:
210
题目大意:
有N头奶牛排成一排。每头奶牛都有一个唯一的"坏脾气"值。坏脾气的范围为1~100000。现在将
奶牛重新排序,使奶牛按照坏脾气增加的顺序排列。所有的奶牛都可以相互交换位置。但是交换脾
气值为X,Y的两头奶牛,需要的时间是X+Y。现在问:将奶牛重新排列需要的最短时间是多少。
思路:
这道题就是给你一个N个元素的序列,求这个序列中所有逆序数的和。所以,对于值为a的第i个元素,
除了知道前i个元素里比a大的元素个数之外,还得知道前i个元素里比a大的元素的和。建立结构体树
状数组,一个变量来记录比a小...
分类:
编程语言 时间:
2015-04-28 18:28:03
阅读次数:
163
题目大意:
现在假设天空是一个二维平面(1000*1000)。坐标从(0,0)点开始。现在给出N条信息。
"B X Y",B为字符,x、y是整数,表示将坐标(x,y)的星星变亮。
"D XY",D为字符,x、y是整数,表示将坐标(x,y)的星星变暗。
"Q X1 X2 Y1 Y2",Q是字符,X1、X2、Y1、Y2是整数,表示问有多少颗星星在X1、X2、
Y1、Y2确定的矩形中。
思路:
建立一个二维的树状数组,单点更新,区间求值。其实和一维的差不多。只不过第i个元素变
为了第x行第y列的元素。更新和求值...
分类:
编程语言 时间:
2015-04-28 18:27:05
阅读次数:
154
J2SE知识点归纳笔记(七)---Java IO Part 4:基本字符流
上一节中,我们对于Java IO流中的一些基本字节流进行了学习,他们都是InputStream与
OutputStream的子类;本节学习的字符流则是Reader与Writer的子类,好了,话不多说,
开始本节内容!
①Reader类与Writer类的相关方法:
②2.FileReader与FileWriter类的使用:文件读写,但是他们是⑤的子类哦!
③CharArrayReader与CharArrayWriter类:字符数组类,...
分类:
编程语言 时间:
2015-04-28 18:26:03
阅读次数:
154