自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

转载 C语言实现栈的各种操作

#include<stdio.h> #include<stdlib.h> #define stack_size 100 #define stack_crement_size 10 typedef int Elemtype; ///////////////////声明一个栈 typedef struct Stack { Elemtype *top; E...

2019-03-20 23:16:53 1006

原创 组合数的计算(递推)

下面是计算组合数的函数 int C(int n,int m) { if(m==0)return 1; if(n==1)return 1; if(m==n)return 1; else return C(n-1,m-1)+C(n-1,m); } 返回C(n,m)的值;

2019-03-15 16:37:56 1318

原创 二叉树查找树和平衡二叉树小结

排序二叉树: (1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。 左边的节点全部大于右边的节点。 建立排序二叉树; 输入一组数据,将该组数据建立排序二叉树。 struct node *creat(struct node *root, int x) { if...

2019-03-04 20:22:39 296

原创 二叉树查找树和平衡二叉树小结

排序二叉树: (1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。 左边的节点全部大于右边的节点。 建立排序二叉树; 输入一组数据,将该组数据建立排序二叉树。 struct node *creat(struct node *root, int x) { if(ro...

2019-03-04 19:56:11 338

原创 寒假集训小结之二叉树

有关二叉树的基本操作: 1、初始化一个二叉树; 2,、建立一个二叉树; 3、在二叉树中建立一个节点; 4、在二叉树中删除一个节点; 5、在二叉树中查找一个节点; 6、二叉树的先序遍历; 7、二叉树的中序遍历; 8、二叉树的后序遍历; 9、二叉树的层序遍历; 10、销毁二叉树;等等 二叉树的重要性质: 性质一:二叉树的第i层上之多有pow(2,i-1)个节点; 性质二:深度...

2019-03-04 19:41:56 292

原创 寒假集训小结之栈的应用

栈就像一个死胡同,先进的后出后进的先出,主要是这样的一个结构。 关于栈的应用大多数题都是栈处于一种动态的变化之中,并不是一层不变的,一直有进栈的同时也有出栈的。 例一: 括号匹配 #include&lt;bits/stdc++.h&gt; using namespace std; int main() { char x[60],y[60]; int i,len,fla...

2019-02-21 15:33:01 186

原创 寒假集训小结之动态规划

数学三角形问题: 数字三角形问题 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。    对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路...

2019-02-21 15:31:44 162

转载 最小生成树——Prim算法

数据结构实验之图论九:最小生成树(原题链接) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description  有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。   ...

2019-02-20 09:50:30 354

原创 并查集的应用——小鑫的城堡

小鑫的城堡(原题链接) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 从前有一个国王,他叫小鑫。有一天,他想建一座城堡,于是,设计师给他设计了好多简易图纸,主要是房间的连通的图纸。小鑫希望任意两个房间有且仅有一条路径可以相通。小鑫现在把设计图给你,让你帮忙判断设计图是否符合他...

2019-02-19 16:04:03 538

原创 并查集

B站上对并查集的详细讲解 int find(int a) { if(map[a] == a) return a; else return find(map[a]); } 这段代码主要找每个点的根节点并返回; void merge(int u, int v) { int t1 = find(u); int t2 = find(v); if(t1!=t2) ...

2019-02-19 11:27:38 174

转载 动态规划扩展:背包小结

01背包是基础的背包问题,即容量为v的背包, 给你n件物品, 每件物品只有一件, 每件物品所占体积vi, 价值wi已知,求此背包所能容纳的前提下,让在其中物品价值最大。 此问题状态方程为发f[i][v] = max(f[i-1][v], f[i-1][v-vi[i]]+wi[i]), 即前i件物品放入容积为v的背包中得到的最大价值。 因为每件物品只有一件,所以第i件物品有两种选择, 即放或不放...

2019-02-15 11:06:39 344

原创 KMP算法

#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; char s[1000000],t[1000000]; int next[1000000],a,b,i,j,k; int main() { while(~scanf("%s %s",s,t)) { a=...

2019-02-02 19:12:30 137

原创 寒假集训小结之顺序表

顺序表其实就两大类:一种就是带下标的数组,另一种就是链式的链表。 元素位置互换之逆置算法(数据改进): 顺序表应用4-2:元素位置互换之逆置算法(数据改进) Time Limit: 80 ms Memory Limit: 600 KiB Submit Statistic Problem Description 一个长度为len(1&lt;=len&lt;=1000000)的顺序表,数据...

2019-02-02 18:56:08 300

原创 鬼吹灯之怒睛湘西

鬼吹灯之怒睛湘西 Time Limit: 2000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 给你n个小球,从左到右编号依次为1,2,3,4,5,6.........n排成一行。现在有以下2种操作:A x y表示把编号为x小球移动到编号为y的小球的左边(和y相邻)。Q x为询问编号为x的小球左边的球号,如...

2019-02-02 15:17:42 1121

转载 让人小心的getchar();

getchar()的作用是从缓存区吸收一个字符这种字符包括'\n'即回车,空格,Tab, getchar的用法: 1.输入字符:例如a=getchar(); getchar()在缓存区吸收一个字符给a; 2.吸收回车: 在前面输入时,无论是scanf还是getchar在输入完成时都会在缓存区留有一个'\n'回车,假如这时在输入一个字符scanf("%c,&amp;a); 于是就变成了a...

2019-01-29 13:14:14 1268

原创 寒假集训之贪心小结

贪心和动态规划一样都是用来解决最优解问题的。贪心算法就是一种在每一步选择中都采取当前状态最好或最优的选择,从而希望得到结果是最好或最优的解法。 因为每一步都要得到最优解所以看上去很贪。在动态规划的算法中,每步往往依赖于相关子问题。正是这种差别,动态规划常常通过自底向上的方式解决子问题,贪心往往通过自顶向下的方式解决就像下面这个问题只能用动态规划来解 数字三角形问题 Time Limit: 1...

2019-01-24 20:35:34 277

转载 马拦过河卒--递推

Problem Description 棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,A点(0,0)、B点(n,m)(n,m为不超过15的整数),同样马的位置坐标是需要给出的。现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是...

2019-01-24 18:42:04 1157

原创 寒假集训之递归小结

在程设1中也接触过递归,到底什么是递归,简单来说就是在函数中自己调用自己。它通常把一个大问题简单化,转化成一个个的小问题。 注意: 在函数中必须有直接或间接调用自身的语句。 在使用递归策略时,必须有一个吗,明确的递归结束条件,称为递归递归出口。 求阶乘(n!): int Factorial(int n) { if(n===0)return 1; return n*Fact...

2019-01-24 11:27:56 206

转载 辗转相除法求最大公约数

int GCD(int x,int y)//求最大公约数 { if(y==0) return x; else return GCD(y,x%y); } int LCM(int x,int y)//求最小公倍数 { return x*y/GCD(x,y); }  

2019-01-23 21:22:01 1489

原创 寒假集训之递推小结

递推就是每个数据和他前面的若干数据项(或后面的若干数据项)有一定的关联关系;一般有以下几种关系; 简单的Hanoi塔问题: 递推关系式Fn=2*F(n-1)+1;(n&gt;=2) 程序如下: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #define N 64 int main() { int i,n; long...

2019-01-23 21:14:35 221

原创 寒假集训之链表小结

使用链表首先建立节点的结构体: struct node { int data; struct node *next; }; 链表的建立有两种一种是顺序建立一种是逆序建立,两者相比较而言逆序更简单一些,他比顺序少设置一个指针下面是逆序建立链表的函数 struct node *creat(int len)//逆序建立链表 { struct node *head,*p;...

2019-01-23 20:46:38 326

翻译 数据结构实验之栈与队列六:下一较大值(二)

Problem Description 对于包含n(1&lt;=n&lt;=100000)个整数的序列,对于序列中的每一元素,在序列中查找其位置之后第一个大于它的值,如果找到,输出所找到的值,否则,输出-1。 Input  输入有多组,第一行输入t(1&lt;=t&lt;=10),表示输入的组数; 以后是 t 组输入:每组先输入n,表示本组序列的元素个数,之后依次输入本组的n个元素。 O...

2019-01-20 15:00:53 307

翻译 数据结构实验之栈与队列二:一般算术表达式转换成后缀式

Problem Description 对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。 Input 输入一个算术表达式,以‘#’字符作为结束标志。 Output 输出该表达式转换所得到的后缀式。 Sample Input a*b+(c-d/e)*f# Sample Output ab*cde/-f*+ #include &lt;stdio.h&gt; ...

2019-01-20 14:22:17 323

原创 数据结构实验之栈与队列八:栈的基本操作

Problem Description 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。 Input 首先输入整数t(1 &lt;= t &lt;= 10),代表测试的组数,以后是 t 组输入。  对于每组测试数据,第一行输入两个正整数 m(1 &lt;= m &lt;= ...

2019-01-19 19:01:28 776

原创 数据结构实验之栈与队列四:括号匹配

Problem Description 给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。 Input 输入数据有多组,处理到文件结束。 Output 如果匹配就输出“yes”,不匹配输出“no” Sample Input sin(20+10) {[}] Sample Output yes no #include...

2019-01-19 16:41:52 368

原创 最大子段和之动态规划法

顺序表应用8:最大子段和之动态规划法 Time Limit: 5 ms Memory Limit: 500 KiB Problem Description 给定n(1&amp;lt;=n&amp;lt;=100000)个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值...

2019-01-18 19:47:37 1328

翻译 最大子段和之分治递归法

顺序表应用7:最大子段和之分治递归法 Time Limit: 10 ms Memory Limit: 400 KiB Problem Description 给定n(1&amp;lt;=n&amp;lt;=50000)个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值...

2019-01-18 19:14:05 360

原创 GO

来到优快云的第一天

2018-12-18 12:36:43 146

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除