随笔分类 - 数据结构
摘要:01、数据库管理系统(Database Management Systems,DBMS) A database management system (DBMS) is a computer software application that interacts with the user, othe
阅读全文
摘要:线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,因此有时需要离散化让空间压缩。 #include<algorithm> #
阅读全文
摘要:记录出错的代码所在的文件名称和行号。 处理:1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并)2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号
阅读全文
摘要:题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解题思路: 先序遍历第一个位置肯定是根节点node,
阅读全文
摘要:1:输入一个链表,输出该链表中倒数第k个结点。 代码思路如下:两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第k个节点。然后两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了。 2:输入一个链表,反转链表后,输出链表的所
阅读全文
摘要:'; $money=mt_rand($min*100,$safe_max*100)/100; $total=$total-$money; echo '第'.$i.'个红包:'.$money.'元,余额:'.$total.'元'.''; } echo '第'.$i.'个红包:'.$total.'元,余额:0元'; ?>
阅读全文
摘要:算法实验题 4.2 骑行问题★问题描述:小马哥是一名骑行爱好者。他准备骑行 4.5km,从 A 地出发前往 B 地。从 A 地前往 B 地的路上还有很多的单车一族,假设除小马哥外,其他人的速度总是固定的。小马哥现在在 A 地,他会在那等待一个也是到 B 地骑行的人,然后跟上他。并且和他同样的速度前往...
阅读全文
摘要:繁忙的企业家问题描述:马耘是一家上市公司的董事长。10 月 1 号是马耘最繁忙的一天,因为这一天有 n 家商铺开张,而马耘必须在每家商铺的开业典礼上剪彩,马耘出席时间必须超过该开业典礼时间的一半并且不能打断。请问马耘如何安排他的日程,以便他能够出席所有的开业典礼?请注意:马耘不能在同一时间参加两个开...
阅读全文
摘要:Jack 正在组装自己的飞行器,他希望从手中的一些很奇怪的能量晶石中,选择一块,作为飞行器引擎的能量来源。 每个晶石,都用一连串的数字进行标注。 可以整块使用,也可以通过对晶石的切割,得到不同强度的能量输出。 切割后,各个晶石片段能量强度之和计算方式为:各个晶石片段上的整数之和。(不可把单个数字切割...
阅读全文
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=37 先逆转原来的字符串,再用原来的字符串跟逆转后的字符串进行比较,求得的最长公共子序列就是回文串,也就是不需要添加的,再用总长度减去最长公共子序列就可以得到最少需要添加的字符数。
阅读全文
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=36
阅读全文
摘要:有N件物品和一个容量为V的背包。第i件物品的重量是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获
阅读全文
摘要:南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市。 他在用这N个部队维护着M个城市的治安,这M个城市分别编号从1到M。 现在,小工军师告诉南将军,第K号城市发生了暴乱,南将军从各个部队都派遣了一个分队沿最近路去往暴乱城市平乱。 现在已知在任意两个城市之间的路行军所需的时间,你作为南将军麾下最
阅读全文
摘要:1 #include 2 #define N 60 3 int exchage(float n,float *a,int c,float *r); 4 void main() 5 { 6 float rmb[]={100,50,20,10,5,2,1,0.5,0.2,0.1}; 7 int n=sizeof(rmb)/sizeof(rmb[0]),k,i; 8 ...
阅读全文
摘要:一、对int类型数组排序 二、对char类型数组排序(同int类型) 三、对double类型数组排序 四、对结构体一级排序 五、对结构体二级排序 六、对字符串进行排序 按照结构体中字符串str的字典顺序排序 附加一个完整点的代码,对字符串二维数组排序: 如果是一个结构体的话: struct node
阅读全文
摘要:问题描述:A 国正面临着一场残酷的战争,城市被支持不同领导的两股势力占据,作为一个商人,M先生并不太关心政治,但是他知道局势很严重,他希望你能救他出去。M 先生说:“为了安全起见,我们的路线最多只能包含一条连接两股不同势力城市的道路”。M 先生想知道最快多久能到达目的地。数据输入:第一行N(2 2 #include 3 #include 4 #define inf 0xffffff 5 int g[601][601]; 6 struct ufs 7 { 8 int parent[1000]; 9 }u;10 int find(int e)11 {12 if(e!=u.paren...
阅读全文
摘要:问题描述:赤壁之战前夕,庞统向周瑜献连环计,瑜设计使蒋干邀庞统到曹营。操与统同观营寨,又共论兵法。统对答如流使操敬服。统乘机提出:大江中风浪不息使北兵易生疾病。可将大小船配搭,首尾用铁环连锁,铺阔板以便人马行走。操闻之大喜,派人连夜打造连环大钉,锁住船只。每打造一单位长度的铁索要花费一单位的钱,曹操希望用最少的花费将n 艘战船连接起来(任意两艘战船直接或间接被铁索连接),每艘战船可以看成一个点,坐标为(xi,yi),曹营中有一位神秘人物,他所在的战船必须和曹操所在战船直接连接,求最小花费。数据输入:第一行战船数n(2 3 #include 4 #include 5 double g[101][
阅读全文
摘要:1 #include 2 int dis[601][601]; 3 int path[601][601]; 4 void floyd(int n) 5 { 6 for(int k=1;k=0;i--) 38 { 39 if(i!=0) 40 printf("%d -> ",p[i]); 41 else 42 ...
阅读全文
摘要:1 #include 2 #include 3 #include 4 using namespace std; 5 typedef struct ufset *UFset; 6 struct ufset 7 { 8 int parent[100001]; 9 int root[100001];10 }UFS;11 int s[100001],y[100001],d[10000],add;12 int UFfind(int e,UFset U)13 {14 int i,j=e;15 while(U->root[j]==0)16 {17 j...
阅读全文
摘要:1 #include 2 #include 3 typedef struct ufset *UFset; 4 struct ufset 5 { 6 int parent[100001]; 7 int root[100001]; 8 }UFS; 9 int UFfind(int e,UFset U)10 {11 int i,j=e;12 while(U->root[j]==0)13 {14 //printf("parent[%d]=%d root=%d\n",j,U->parent[j],U->root[j]);15 j=...
阅读全文