- 博客(20)
- 收藏
- 关注
原创 hnust 1578 二叉排序树
思路就是先把标准树建立起来,然后循环n次,每次在建一棵树,和标准树对比就可以了,代码中有注释的哦!#include <iostream>#include<string.h>using namespace std;struct tree{ tree *l,*r;//左树和右树 int data;//数据};tree* ru(tree *t,int x)//建树{ if(t==NULL)//根 { t...
2022-05-26 12:06:26
169
原创 hnust 1968 链地址法的哈希表
理解一下题目意思,给出了一个n,所谓的地址x(我设的)其实就是(插入的数%n),x也就是哪条链。 接下来的插入,查找和删除就和我们以前学的链表差不多了,代码中都有注释的!!#include <iostream>#include <iomanip>#include <cstdio>using namespace std;typedef struct node{ int key; struc...
2022-05-26 11:31:03
438
原创 hnust 2184 huffman编码(三题都可)
哈夫曼树就是前面1-n的位置存输入的n个数据,后面还要有(n-1)个空间存两个节点相加的数值,然后第一题的求带权长度就是这后面的(n-1)个空间的和,因为节点的值再这里面重复加过了。 然后是编码,从后往前找,是左子树就是0,是右子树就是1,定一个二维字符数组存下就可以了,oj上这题好像不能用数组,我用了二维指针。 下面是第二题的ac代码,第一题和第三题也是改一点点就可以了#include<iostream>#include<...
2022-04-21 13:42:49
203
原创 codeforces B. Bit Flipping
这题先分为两种情况,k是奇数还是偶数,注释很详细啦。 偶数的情况下,从左到右有0就直接把0变成1,具体操作是先这个0不变翻一遍,再最后一位不便翻一次,这样该位置的0就变成1,最后一位取反,其他的位置不变。 奇数的话就先翻一次,k就变成偶数了,调用上面的弄偶数的函数即可。那这一次该怎么翻呢,如果第一位是1,直接按着他不变翻一次(k--);否则找到第一个出现的1,翻一次(k--),前面的0就都是1了,如果找不到1(即全是0)的话就简单了,逮住最后一位一直翻,因为是奇数次,就变成111...
2022-04-18 14:18:22
321
原创 hnust 1802 B 二叉树遍历2
#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>using namespace std;typedef char TElemType;//二叉树的二叉链表存储表示typedef struct BiTNode { TElemType data; //结点数据域 struct BiTNode *lchild.
2022-04-14 23:22:11
939
原创 hnust 2186 C 层次遍历
这题要用队列去做,从根开始,往下层从左到右输出数据即可。 注意头文件加了一个queue。#include<iostream>#include<cstdlib>#include<cstdio>#include<queue>using namespace std;typedef char TElemType;//二叉树的二叉链表存储表示typedef struct BiTNode{ TEl...
2022-04-14 22:48:19
499
1
原创 hnust 1462 表达式求值
这个我没有用链表做,利用一些栈的思路写下的; 首先判断优先级 '( ' '* /' ' + - ' ')' 四个优先级从大到小; 随输入字符计算,如果输入的x优先级小于str中的栈顶,x= ‘ + ’,str[c]=' * ',就从a数组里面弹出两个数,str中弹出栈顶;计算即可,这x宇str的下一个栈顶比较;如果输入的x优先级大于str中的栈顶,直接入栈比如x= ‘ / ’,str[c]=' + ',就把x入栈; 而’( ...
2022-04-07 18:27:02
819
原创 hnust 1962 链表排序
#include<iostream>#include<iomanip>using namespace std;#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status; //Status 是函数返回值类型,其值是函数结果状态代码。typedef int ElemType; //ElemType 为可定义的数据类型,此设为int类型typedef struct LNode...
2022-03-24 21:49:49
645
原创 hnust 1956 逆转链表
这题直接逆数据建立链表即可!! 放代码:#include<iostream>#include<iomanip>using namespace std;#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status; //Status 是函数返回值类型,其值是函数结果状态代码。typedef int ElemType; //ElemType...
2022-03-24 21:41:09
879
原创 hnust 1951 链表实现(第二部分)
写的有点水,别介意哈!!#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status; //Status 是函数返回值类型,其值是函数结果状态代码。typedef int ElemType; //ElemType 为可...
2022-03-24 21:20:27
1665
原创 Codeforces 1473B - String LCM
Codeforces 1473B - String LCM 代码有点长,但是很清楚!!
2022-03-12 18:38:32
152
原创 hnust 1642 最小的x
这道题要把思路逆一下,因为x<=10000000000,而s(x)是求各个位上的数字之和,所以s(x)不会超过81的,也就是999999999的情况。 所以我们可以从s(x)的角度考虑,从1--81都试一下,用 i 来代替,因为知道 i 就可以求出x了,再把x的各个位上的数字之和(s(x))求出来,如果等于i ,那就说明求出来了 下面附上代码:#include <iostream>#include <cstdio&g...
2022-02-27 15:08:49
103
原创 codeforces 1380A :Three Indices
这题主要是找出中间的那个数,左右有小于他的数就是“YES”,所以我们可以先找到最大值,这样左右两边找小好找嘛,但是要注意,因为左右都有数据,所以是要找 2-n-1 这部分的最大值,然后一个for循环向左找左边,一个for循环向右找右边。 当然会有这种情况,1 4 3 2 5 6,我们找到的max是5,然后你发现5的右边是6,这是不符题意的,但是1 4 3又是符合题意的,所以这时候要把 max-1然后找到 max-1的位置,再重复以上去找左右,这样的话最多就要找...
2022-02-27 14:56:50
244
原创 codeforces:1543B Customising the Track
B. Customising the Tracktime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputHighway 201 is the most busy street in Rockport. Traffic cars ...
2022-02-26 10:24:48
308
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人