
数据结构
nnbs
退役老年选手
展开
-
单链表的反向
Reserve函数void ReverseList(pLink plink){ pNode p1,p2,p3; p1=plink->head->next; p2=p1->next; p1->next = NULL; while (p2) { p3=p2->next; p2 ->next = p1; p1 = p原创 2017-01-11 22:19:51 · 260 阅读 · 0 评论 -
数据结构第三次实验——线性表专题在线评测
1. Walmart彩票 【问题描述】 Walmart推出了一项彩票。规则是: (1) 每张彩票上印有7个互不相同的号码,号码的取值范围为1~33。 (2) 兑奖前会公布一个中将号码,由7个各不相同的号码构成。 (3) 共设置7个奖项,特等奖和一等奖至六等奖。对奖规则如下: 特等奖:彩票上的7个号码出现在中将号码中。 一等奖:彩票上有6个号码出现在中将号码中。 二等奖:彩票上有5个原创 2017-04-25 21:21:51 · 626 阅读 · 0 评论 -
简单同构图 hdoj3926 Hand in Hand
同构图概念:假设G=(V,E)和G1=(V1,E1)是两个图,如果存在一个双射m:V→V1,使得对所有的x,y∈V均有xy∈E等价于m(x)m(y)∈E1,则称G和G1是同构的,这样的一个映射m称之为一个同构,如果G=G1,则称他为一个自同构。意思就是图的结构是一样的。题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3926这是一个特殊的图,图的最大度原创 2017-05-16 23:27:50 · 1310 阅读 · 0 评论 -
数据结构OJ作业——最短路、拓扑排序
poj3259 wormholes: http://poj.org/problem?id=3259用spfa或者bellman-ford判断有无负环,我用的是spfa,使用cnt数组记录结点入队次数,次数大于等于n说明有负环。#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespac原创 2017-05-17 12:56:12 · 459 阅读 · 0 评论 -
数据结构OJ作业——最小生成树
poj2485 Highways : http://poj.org/problem?id=2485最小生成树输出最大边权#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int MAXN = 510;const int INF = 0x3f3f3f3f;int map[MAXN]原创 2017-05-17 20:33:15 · 1158 阅读 · 0 评论 -
dfs + 最小生成树 hdoj4126 Genghis Khan the Conqueror
题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=4126 题意是有一张图要求最小生成树,然而图中的一条边可能会变大,一共有q种可能,每种可能都是等概率的。求改变一条边后最小生成树权和的期望。节点至多3000个,而q最大是10000,所以暴力的对这10000种情况求一遍最小生成树是会超时的。可以这样想,先求出当前情况下的最小生成树,那么改变的这条边原创 2017-05-27 22:57:51 · 476 阅读 · 0 评论 -
离线+带权并查集 hdoj3938 Portal
题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=3938题目的题意有些不清楚,看了discuss才明白。定义图上一条路径的cost为路径中所有边权中最大的那个。对于给定的图,回答当最大的路径长度为l的时候,最多可以有多少顶点对是可及的。按照Kruskal的思路,按边权从小到大连接顶点,每次相连,如果减少一个连通分量,那么可及顶点对就会增大,增大的个数原创 2017-05-17 23:33:06 · 310 阅读 · 0 评论 -
数据结构第一次实验——顺序表、栈
1. 表达式计算 【问题描述】 求算术表达式的值。算术表达式按中缀给出,以=号结束,包括+,-,*,/四种运算和(、)分隔符。运算数的范围是非负整数,小于等于109 。 输入保证语法正确。 【输入】 一行,包括1个算术表达式。 【输出】 一行,算术表达式的值 【输入输出样例】 expr.in expr.out (1+30)/3= 10【限制】 算术表达式的长度小于等于1原创 2017-04-26 23:28:35 · 669 阅读 · 0 评论 -
数据结构第五次实验——并查集、树在线评测
圆的划分 【问题描述】 在一个平面上画了n 个圆。圆心坐标和半径均为整数。现我们定义满足如下性质的图形为一个块: 每一个圆都是一个块; 如果两个块有公共的部分(包括相切),那么这两个块就会形成一个新的块,否则这两个块就是不同的。 示例:图1 中的5 个圆形成了2 个不同的块。 图2 中的4 个圆形成了1 个块。 任务:找出这些圆中不同的块的数目。 【输入】原创 2017-05-09 21:18:35 · 812 阅读 · 0 评论 -
单链表的操作
Talk is cheap, show the code#include #include #define ERROR -404typedef struct Node { int data; struct Node* next;} Node;Node* InitList (void);void add (Node* head,int data);void Prin原创 2016-12-05 23:48:04 · 387 阅读 · 0 评论 -
数据结构OJ作业 二叉树
题目传送门:http://poj.org/problem?id=2255 Tree Recovery 给出一个二叉树的前序和中序,求二叉树的后序。 节约空间,并不实际建树,而是一边搜索一边输出。#include <cstdio>#include <cstring>using namespace std;char pre[30],in[30];void build(int l, int r原创 2017-04-22 23:03:13 · 1194 阅读 · 0 评论 -
数据结构第七次实验——排序、树在线评测
数的统计【问题描述】在一个有限的正整数序列中,有些数会多次重复出现在这个序列中。如序列:3,1,2,1,5,1,2。其中1 就出现3 次,2 出现2 次,3 出现1 次,5 出现1 次。 任务:对于给定的正整数序列,从小到大依次输出序列中出现的数及出现的次数。【输入】 第一行正整数n,表示给定序列中正整数的个数。 第二行是n 个用空格隔开的正整数x,代表给定的序列。 【输出】 若干行,每行原创 2017-05-23 23:28:35 · 942 阅读 · 0 评论 -
并查集判树 hdoj 1325 Is it a tree?
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1325给出若干条有向边的始点和终点,判断是否是一棵树。并查集合并时判断是否属于一个联通分量,一个点的入度不能大于1,有且只有一个点入度为0.#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>usin原创 2017-05-22 23:34:26 · 232 阅读 · 0 评论 -
HDOJ 1710Binary Tree Traversals 二叉树的遍历
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1710由先序和中序求后序,递归求解但不建树。//二叉树的遍历#include <iostream>#include <cstdio>#include <cstring>using namespace std;//记录前序和中序int pre[1010], in[1010];int n;//原创 2017-02-19 18:03:10 · 426 阅读 · 0 评论 -
HDOJ1251 统计难题 Trie树的基本操作
题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1251Trie树是一种特殊的多叉树结构,又称字典树或前缀树。特点是占用内存大(可以尝试左儿子右兄弟存储),但是可以很好的节约时间,时间复杂度为O(N),N为查找或插入的字符串长度。题目中统计含某一前缀的单词数正是Trie树的典型应用。Trie树的定义:typedef struct Trie{//记原创 2017-01-19 12:55:46 · 349 阅读 · 0 评论 -
模拟栈的出入 HDOJ 1022 Train Problem I
题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1022题目大意是给出一个入栈的序列,判断一个给出的序列是否可能是一个合法的出栈序列,若是,给出入栈和出栈的过程。#include <iostream>#include <cstring>using namespace std;int main(int argc, char const *argv[原创 2017-01-27 12:15:13 · 297 阅读 · 0 评论 -
跳舞链 nyist511 小球移动
题目传送门:http://acm.nyist.net/JudgeOnline/problem.php?pid=511跳舞链是带哨兵节点的双向循环链表,更加优美的形式是将该链表用静态链表的形式实现,使得查找,删除和恢复操作的时间复杂度均为O(1)#include <cstring>#include <cstdio>using namespace std;const int MAX = 10010原创 2017-03-28 11:09:21 · 272 阅读 · 0 评论 -
数据结构OJ作业——栈
POJ 1363:http://poj.org/problem?id=1363 判断一个出栈序列是否合法#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int MAX = 1005;int main(int argc, char const *argv[]){ int原创 2017-03-28 12:32:16 · 558 阅读 · 0 评论 -
数据结构OJ作业——队列
POJ 3984 :http://poj.org/problem?id=3984 迷宫,输出最短路径,bfs#include <iostream>#include <cstdio>#include <queue>#include <cstring> using namespace std;int maze[5][5];pair<int, int> path[5][5];queue<pa原创 2017-03-28 12:40:51 · 489 阅读 · 0 评论 -
ST表 HDOJ5726 区间GCD
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5726ST表适用于静态数据的查询(不支持修改),经过一次O(nlogn)的离线预处理之后,查询O(1)。预处理过程运用了DP思想,st[i,j]表示从第i个数开始长度为2的j次方的区间中该区间的特征值(最值,GCD……)状态转移方程: st[i,0] = num[i] st[i, j] = f(st原创 2017-03-28 13:02:11 · 316 阅读 · 0 评论 -
线段树初探
线段树是一种用于维护区间性质的数据结构,支持在线处理,其本身是一颗完全二叉树。HDOJ 1166 单点修改区间查询维护区间和 题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1166 模版题,树状数组亦可A#include <iostream>#include <cstdio>#include <cstring>using namespace原创 2017-03-29 18:59:26 · 213 阅读 · 0 评论 -
数据结构OJ作业——循环队列
都是循环队列的最基本应用,都是简单模拟,就不多讲了。POJ 3125 题目传送门:http://poj.org/problem?id=3125#include <iostream>#include <algorithm>#include <cstring>#include <cstdio> using namespace std;const int MAX = 105;int main(原创 2017-03-29 19:06:11 · 1361 阅读 · 0 评论 -
数据结构OJ作业——图的遍历
题目传送门:http://poj.org/problem?id=2386两种姿势可选,一个是比较常规的图的遍历,求连通分量的个数就可以了。第二个是使用并查集,并查集其实本来就是解决连通性的一个很好的工具。dfs:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace s原创 2017-04-30 18:33:21 · 963 阅读 · 0 评论 -
枚举+最小生成树 hdoj4081 Qin Shi Huang's National Road System
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4081题目大意是给你一个图,既有点权又有边权,求一个生成树,你可以任选其中一条边,使它的边权为0,最终使得边权为0的两点的点权和/剩余边的边权和 最小。我们可以这样思考,从最小生成树中去掉一条边,剩余的两个连通分量用边权为0的边链接。这样是正确的,因为如果你要选择两个点并用0边把它们连接起来,意味着需要原创 2017-05-21 18:26:42 · 381 阅读 · 0 评论