swustoj
向着曙光前进
。。。。
展开
-
swust.oj 0259
#include #include #include #include using namespace std;int main(){ int n; while (cin >> n) { int a[1001]; char b[1001]; for (int i = 0; i < n; i++) { char ch[10]; cin >> a[i] >原创 2017-04-11 16:28:02 · 223 阅读 · 0 评论 -
输出利用二叉树存储的普通树的度
普通树可转换成相应的二叉树(该二叉树的根结点一定缺少右儿子),反之亦然。故而可以根据相应的转换方法去统计某一二叉树对应的普通树的度。普通树的度为其结点儿子数的最大值。相应的二叉树可利用二叉树的先序递归遍历算法创建。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写...原创 2018-04-17 16:51:44 · 1477 阅读 · 0 评论 -
利用二叉树中序及先序遍历确定该二叉树的后序序列
已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及先序遍历结果,要求输出其后序遍历结果。输入输入数据占2行,其中第一行表示中序遍历结果,第二行为先序遍历结果。输出对测试数据,输出后序遍历结果。样例输入BFDAEGCABDFCEG样例输出FDBGECA#include<iost...原创 2018-04-17 16:50:35 · 2548 阅读 · 4 评论 -
利用二叉树中序及后序遍历确定该二叉树的先序序列
已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及后序遍历结果,要求输出其先序遍历结果。输入第一行为中序序列 第二行为后续序列输出输出为遍历二叉树得到的先序序列样例输入BFDAEGCFDBGECA样例输出ABDFCEG#include<iostream>#incl...原创 2018-04-17 16:49:38 · 384 阅读 · 0 评论 -
统计利用二叉树存储的森林中树的棵数
普通树及其构成的森林均可转换成相应的二叉树,反之亦然。故而可以根据相应的转换方法去统计某一二叉树对应的森林中树的棵数。相应的二叉树可利用先序递归遍历算法创建。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#"时表示该结点不需要创建...原创 2018-04-17 16:47:45 · 1000 阅读 · 2 评论 -
输出利用先序遍历创建的二叉树的层次遍历序列
利用先序递归遍历算法创建二叉树并输出该二叉树的层次遍历序列。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#"时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树的层次遍历序列。需要注意输入数据序列中的"#"字符和非...原创 2018-04-17 16:46:38 · 4062 阅读 · 0 评论 -
双向链表的操作问题
建立一个长度为n的带头结点的双向链表,使得该链表中的数据元素递增有序排列。(必须使用双向链表完成,数据类型为整型。)输入第一行:双向表的长度; 第二行:链表中的数据元素。输出输出双向链表中的数据元素的值。样例输入102 4 6 3 5 8 10 21 12 9样例输出2 3 4 5 6 8 9 10 12 21#include<iostream>#include<cstr...原创 2018-04-17 16:45:29 · 822 阅读 · 0 评论 -
利用栈完成后缀表达式的计算
后缀表达式不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:(2 + 1) * 3 , 即2 1 + 3 *。利用栈结构,将后缀表达式的结果计算出来。输入后缀表达式。以#号作为表达式结束标志。为了简单,处理的数据为0-9的整数。输出计算结果。样例输入3 6 6 2 / - 3 * +#样例输出12#include<stdi...原创 2018-04-17 16:38:52 · 4433 阅读 · 0 评论 -
凸包面积
麦兜是个淘气的孩子。一天,他在玩钢笔的时候把墨水洒在了白色的墙上。再过一会,麦兜妈就要回来了,麦兜为了不让妈妈知道这件事情,就想用一个白色的凸多边形把墙上的墨点盖住。你能告诉麦兜最小需要面积多大的凸多边形才能把这些墨点盖住吗?现在,给出了这些墨点的坐标,请帮助麦兜计算出覆盖这些墨点的最小凸多边形的面积。输入多组测试数据。第一行是一个整数T,表明一共有T组测试数据。每组测试数据的第一行是一个正整...原创 2018-04-10 10:34:48 · 489 阅读 · 0 评论 -
有向图的邻接表存储强连通判断
假设有向图G采用邻接表存储,设计一个算法,判断图G是否是强连通图。若是则返回yes;否则返回no。(图中顶点信息为整型数据。)输入第一行为图中顶点的个数n; 第二行为图的边的条数e;接下来e行,每行是一条边依附的两个顶点信息。输出强连通图输出yes,否则输出no.样例输入570 11 2 1 32 33 0 3 44 0样例输出yes#include<iostream&...原创 2018-04-12 21:00:09 · 1425 阅读 · 0 评论 -
Soldiers
在一个划分成网格的操场上,n个士兵散乱地站在网格点上。网格点由整数坐标(x,y)表示。士兵们可以沿网格边上、下、左、右移动一步,但在同一时刻任一网格点上只能有一名士兵。按照军官的命令,士兵们要整齐地列成一个水平队列,即排列成(x,y),(x+1,y),…,(x+n-1,y)。如何选择x 和y的值才能使士兵们以最少的总移动步数排成一列。计算使所有士兵排成一行需要的最少移动步数。输入第1 行是油井数n...原创 2018-04-12 21:12:54 · 301 阅读 · 0 评论 -
一元多项式加法运算的实现
编程实现一元多项式的加法运算。(要求用链表实现)输入第一个一元多项式A; 第二个一元多项式B。 以(0,0)作为输入结束。输出多项式A和多项式B的和。样例输入5,3 7,8 9,15 0,02,0 6,3 -7,8 0,0样例输出2x^0+11x^3+9x^15#include<malloc.h>#include<stdio.h>#include<iostrea...原创 2018-04-13 12:26:15 · 8493 阅读 · 0 评论 -
舞伴问题
假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。要求编写程序实现舞伴问题。输入输入一共5行,第一行是男生人数m;第二行依次是男生的姓名;第三行是女士的人数n;第四行依次是女士的姓名;第五行是跳舞的轮数。输出配对的男士和女士的姓名。样例输入5A B C D E3...原创 2018-04-13 12:21:53 · 758 阅读 · 0 评论 -
统计利用先序遍历创建的二叉树叶结点的个数
统计利用先序遍历创建的二叉树叶结点的个数 1000(ms) 10000(kb) 2563 / 4715利用先序递归遍历算法创建二叉树并计算该二叉树叶结点的个数。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#"时表示该结点不需要创...原创 2018-04-13 12:18:47 · 2448 阅读 · 0 评论 -
统计利用先序遍历创建的二叉树的宽度
统计利用先序遍历创建的二叉树的宽度 1000(ms) 10000(kb) 2257 / 5388利用先序递归遍历算法创建二叉树并计算该二叉树的宽度。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#"时表示该结点不需要创建,否则创建...原创 2018-04-13 12:16:06 · 941 阅读 · 0 评论 -
统计利用先序遍历创建的二叉树的深度
利用先序递归遍历算法创建二叉树并计算该二叉树的深度。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#"时表示该结点不需要创建,否则创建该结点。最后再统计创建完成的二叉树的深度(使用二叉树的后序遍历算法)。需要注意输入数据序列中的"...原创 2018-04-13 12:13:31 · 1882 阅读 · 0 评论 -
循环队列
根据给定的空间构造顺序循环队列,规定队满处理方法为少用一个元素空间。例如,给定5个元素空间构造循环队列,则只能存放4个元素。试根据入队及出队操作判断队列最后的元素存放情况,并输出最后队列中的元素值,即完成给定入队及出列操作后一次性全部出队的元素值。要求采用顺序队列完成,少用一个存储空间的方法区分队列的空和满。输入输入的第一行为一个自然数n,表示要求构造的顺序循环队列空间数。 第二行为操作次k,接下...原创 2018-04-13 11:57:40 · 1335 阅读 · 0 评论 -
括号匹配问题
假设表达式中允许包含两种括号:圆括号和方括号。编写一个算法判断表达式中的括号是否正确配对。输入由括号构成的字符串,包含”(“、”)“、”[“和”]“。输出如果匹配输出YES,否则输出NO。样例输入[([][]())]样例输出YES#include<stdio.h>#include<math.h>#include<string.h>#include&l...原创 2018-04-13 11:55:26 · 435 阅读 · 0 评论 -
二叉排序树的实现和查找
按照给定的关键字集合,建立二叉排序树。在建立的二叉排序树上查找指定的关键字,查找成功,输出找到该关键字比较的次数;查找不成功,输出-1.输入关键字个数n; 关键字集合; 要查找的关键字;输出查找成功输出比较的次数,否则输出-1。样例输入1225 18 46 2 53 39 32 4 74 67 60 1174样例输出4#include<iostream>#include&l...原创 2018-04-18 18:43:56 · 2870 阅读 · 0 评论 -
堆排序
#include<iostream>#include<regex>#include<string.h>#include<string>#include<algorithm>#include<vector>#include<stdlib.h>using namespace std;bool regex原创 2018-04-09 12:20:50 · 129 阅读 · 0 评论 -
swustoj 0259
#include #include #include #include using namespace std;int main(){ int n; while (cin >> n) { int a[1001]; char b[1001]; for (int i = 0; i < n; i++) { char ch[10]; cin >> a[i] >原创 2018-01-19 18:44:31 · 378 阅读 · 0 评论 -
swust.oj.1075
唉,看错了,写成了克鲁斯卡尔算法,尴尬#include#include#include#include#includeusing namespace std;int b[20];struct node{ char x, y; int date;}a[100];void init(){ for (int i = 0; i < 20; i++) { b[i] =原创 2017-04-12 19:23:26 · 849 阅读 · 0 评论 -
swust.oj.1076
判断给定有向图是否存在回路(1076)Time limit(ms): 1000Memory limit(kb): 10000判断给定有向图是否存在回路。Description第一行为图中顶点的个数n; 第二行为途中弧度条数e; 第二行为顶点信息;接着e行为e条弧依附的两个顶点。Input该图是否存在回路原创 2017-04-12 18:59:35 · 1286 阅读 · 0 评论 -
swust.oj.1072
有向图的邻接矩阵存储根计算(1072)Time limit(ms): 5000Memory limit(kb): 10000Submission: 1907Accepted: 1461Accepted 邻接矩阵 有向图 若有向图中存在一个顶点v,从v可以通过路径到达图中其他所有顶点,那么称v为该有向图的根。假设图G采用邻接矩阵原创 2017-04-12 18:13:10 · 876 阅读 · 0 评论 -
swust.oj.1015
堆排序算法(1015)Time limit(ms): 1000Memory limit(kb): 10000Submission: 3552Accepted: 2048Accepted 编写程序堆排序算法。按照非递减排序,测试数据为整数。Description第一行是待排序数据元素的个数; 第二行是待排序的数据元素。转载 2017-04-12 17:59:30 · 887 阅读 · 0 评论 -
swust.oj.1013
哈希表(开放定址法处理冲突)(1013)Time limit(ms): 1000Memory limit(kb): 10000Submission: 4051Accepted: 2177Accepted 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。Description#i原创 2017-04-12 16:33:14 · 843 阅读 · 0 评论 -
swust.oj.319
#include#include#include#includeusing namespace std;int a[9];int vis[10];void dfs(int count){ if (count == 9) { int d, b, c; d = a[0] * 100 + a[1] * 10 + a[2]; b = a[3] * 100 + a[4] *转载 2017-04-11 18:03:02 · 384 阅读 · 0 评论 -
swust.oj,0541
#include#include#includeusing namespace std;int a[20];int jiecheng(int x){ int ans = 1; for (int i = 1; i <= x; i++) { ans *= i; } return ans;}void init(){ a[0] = 1; for (int i = 1;转载 2017-04-11 17:57:04 · 462 阅读 · 0 评论 -
swust.oj 0964
#include int dir[4][2] = { 0,1,0,-1,1,0,-1,0 };int n, m;int mat[1005][1005];void dfs(int x, int y){ mat[x][y] = 0; int i, tx, ty; for (i = 0; i<4; ++i) { tx = x + dir[i][0]; ty = y +原创 2017-04-11 16:42:36 · 507 阅读 · 0 评论 -
swust.oj.1075求最小生成树(Prim算法)
求出给定无向带权图的最小生成树。图的定点为字符型,权值为不超过100的整形。在提示中已经给出了部分代码,你只需要完善Prim算法即可。输入第一行为图的顶点个数n第二行为图的边的条数e接着e行为依附于一条边的两个顶点和边上的权值输出最小生成树中的边。样例输入610ABCDEFA B 6A C 1A D 5B C 5C D 5B E 3E C 6C F 4F D 2E F ...原创 2017-04-12 19:43:58 · 1281 阅读 · 0 评论 -
swust.oj.303
取模(0303)Time limit(ms): 1000Memory limit(kb): 65535Submission: 1658Accepted: 534Accepted 15级卓越班选拔C16级卓越班选拔C 14级卓越班选拔C14级卓越班选拔C 给你三个数X(1Description输入三个如上转载 2017-04-13 15:31:57 · 417 阅读 · 0 评论 -
swustoj(667)
存钱(0667)Time limit(ms): 1000Memory limit(kb): 65535Submission: 1965Accepted: 1466Accepted 设银行整存零取一年的月利率为n( 0 < n < 1, double)。我手上有一些钱,我想在m( 0 < m < 100, int)年后取出k( 0原创 2017-04-25 16:04:02 · 673 阅读 · 2 评论 -
swustojC++测试二(0161)
求解一元二次方程ax2+bx+c=0(a!=0) 的实根。 从键盘输入a,b,c的值,输出方程的实根 DescriptionInputOutput1 2 1 2 5 6 1 8 2 0 0 5 Sample Input原创 2017-04-15 23:18:05 · 244 阅读 · 0 评论 -
swustoj(变位词(0549))
输入N和一个要查找的字符串,以下有N个字符串,我们需要找出其中的所有待查找字符串的变位词(例如eat,eta,aet就是变位词)按字典序列输出,并且输出总数目Description第一行:N(代表共有N个字符串属于被查找字符串) (NInput按字典序列输出在被查找字符串中待查找字符串的所有变位词 每行输出一个 输出完成后输出总数目Output转载 2017-04-15 18:31:28 · 734 阅读 · 0 评论 -
swustoj(字符串查找(0448))
在一段句子中找出给定字符串出现在句子中第一个字母出现的位置。 句子中字符个数小于4500。 字符串字符个数小于120。Description两行 第一行是给定字符串 第二行是句子Input整数,字符串出现的位置Outputabcde this is a Example of abcde!原创 2017-04-15 16:04:16 · 481 阅读 · 0 评论 -
swustoj(判断(0317))
堆栈是一个很特殊的数据结构,他具有先进后出的特性,在很多应用中都发挥了重要的作用。 对于一组数,怎样判定是否可以由原始数据经过压栈和出栈得到? 如此:即对于一组数,从第一个数开始扫描,当扫描到a[i]时,在a[i]后且比a[i]小的数必须以逆序出现,直到扫描到倒数第二个数停止。 如: 2 4 1 3 5(原始数据1 2 3 4 5) ,首先扫描2,比2小的数且在2之后的数只有1,按照逆序出现; 继原创 2017-04-15 11:22:34 · 556 阅读 · 0 评论 -
swustoj(木材加工(0436))
木材厂有一些原木,现在想把这些原木切割成一些长度相同的小段木头(并不是所有原木都一定要用完,可以有剩余),需要得到的小段的数目是给定的。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。Description第一行是两个正整数N和K(1 ≤ N ≤ 10000,1 ≤ K ≤原创 2017-04-14 16:39:24 · 393 阅读 · 0 评论 -
swuetoj(表达式转换(0309)
给出一个括号算术表达式,表达式中包含:操作符:+、-、*、/、^,并且操作符的优先级依次增高;小写字母a, b, c,…, z;小括号()。算术表达式以中缀形式给出,如(a+b),我们假定表达式中没有出现连续两个以上操作符的情形,比如a*b*c,这种形式会表达成(a*(b*c))或((a*b)*c)。并且算术表达式总是以”(“开始,以“)”结束。请将给定的字条串转换成后缀形式。(见示例输入输出)原创 2017-04-14 15:14:38 · 287 阅读 · 0 评论 -
swystoj(OpenCV(0272))
OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision. OpenCV is released under a BSD license, it is free for both academic and commercial use. Examp原创 2017-04-14 14:55:17 · 361 阅读 · 0 评论 -
Edit Distance
设A 和B 是2 个字符串。要用最少的字符操作将字符串A 转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B 所用的最少字符操作数称为字符串A到B 的编辑距离,记为d(A,B)。试设计一个有效算法,对任给的2 个字符串A和B,计算出它们的编辑距离d(A,B)。输入第一行是字符串A,文件的第二行是字符串B。字...原创 2018-04-26 09:32:53 · 914 阅读 · 0 评论