自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 树状数组——求逆序对个数(初学者都能看懂)

在网上翻看了一些博客,感觉大体对于树状数组求逆序对的讲解不够详细,那些博客,更多像是给已经学会逆序对的人复习用的。而初学者,可能要冥思苦想。接下来,我便从一个初学者的角度,来一步步的,讲解一下由树状数组求逆序对。需要的前置知识只有,会线段数组的基本应用。单点更新,区间查询,求lowbit。先贴树状数组的基本代码。求lowbitint lowbit(x){return x&(-x);}单点更新void update(int x,int y,int n){ for(int i=x;i

2020-05-11 23:45:25 2938 2

原创 scau10303

#include<cstdio>#include<iostream>#include<cstring>using namespace std;//ap表示原三角,bp表示各子问题最优解,cp表示子问题是如何合成原问题的int ap[105][105],bp[105][105],cp[105][105],n;void Init(){ memset(ap,0,sizeof(ap)); memset(bp,0,sizeof(bp)); memset(cp,0

2021-10-28 16:47:41 122

原创 康复训练(8596)

8596 最长上升子序列(优先做)时间限制:300MS 代码长度限制:10KB提交次数:255 通过次数:118题型: 编程题 语言: G++;GCC;VC;JAVADescription当元素 ai1 < ai2 < … < aiK. 就说这个序列是有序上升的。给定序列(a1, a2, …, aN),存在许多这样的子序列(ai1, ai2, …, aiK),其中1 <= i1 < i2 < … < iK <= N.也就是说,子序列是原序

2021-10-20 17:39:43 185

原创 康复训练(9715)

9715 相邻最大矩形面积时间限制:1000MS 代码长度限制:10KB提交次数:0 通过次数:0题型: 编程题 语言: G++;GCC;VC;JAVADescription在X轴上水平放置着 N 个条形图,这 N 个条形图就组成了一个柱状图,每个条形图都是一个矩形,每个矩形都有相同的宽度,均为1单位长度,但是它们的高度并不相同。例如下图,图1包含的矩形的高分别为2,1,4,5,1,3,3 单位长度,矩形的宽为1单位长度。你的任务就是计算柱状图中以X轴为底边的最大矩形的面积。图2阴影部

2021-10-20 15:04:16 174

原创 康复训练(scau10304 )

10304 平面域着色时间限制:1000MS 代码长度限制:10KB提交次数:188 通过次数:53题型: 编程题 语言: G++;GCC;VC;JAVADescription平面上有一点P,它是n个域D1、D2、……,Dn的共同交点,现取k种颜色对这n个域进行着色,要求相邻两个域着的颜色不同,求着色方案数。这里,2<=n<=10,1<=k<=9。输入格式输入:输入两个值:n和k。n为域的个数,k为颜色数输出格式输出:对n个域着色的方案数如输入3 3输

2021-10-12 18:50:36 137

原创 康复训练(scau10343)

10343 划分凸多边形(优先做)时间限制:800MS 代码长度限制:10KB提交次数:0 通过次数:0题型: 编程题 语言: G++;GCC;VC;JAVADescription问题描述:一个正凸N边形,可以用N-3条互不相交的对角线将正N边形分成N-2个三角形。现在要求读入N边形的N(N≤20),输出不同划分方法的总数(要求解的是划分方法数,而不需要输出各种划分法)。这里,注意:(1)顶点编号,认为顶点皆不相同,因此不允许认为将凸N边形转置视为相同划分。(2)若输出是“No an

2021-10-12 17:45:36 135

原创 康复训练(scau 8594)

8594 有重复元素的排列问题(优先做)时间限制:1000MS 代码长度限制:10KB提交次数:1610 通过次数:656题型: 编程题 语言: G++;GCC;VC;JAVADescription设集合R={r1,r2,…,rn}是要进行排列的n个元素,其中r1,r2,…,rn可能相同。试着设计一个算法,列出R的所有不同排列。即,给定n以及待排的n个可能重复的元素。计算输出n个元素的所有不同排列。输入格式第1行是元素个数n,1<=n<=15。接下来的1行是待排列的n个元

2021-10-11 17:25:58 120

原创 数据结构课设框架

//头文件上界 #include<cstdio>//头文件下界 // 结构体上界 //食物 typedef struct FOOD{ char name[100]; //名字 double price; //价格 double discount; //折扣 int number; //库存 int hot; //热度 Ptr_FOOD next; } FOOD,*Ptr_FOOD;//用户typed

2020-12-11 16:25:23 179

原创 带权并查集——并查集3(以后改进写法,现在讲的不易懂)

在了解带权并查集前,我们先要理清楚我们前面讲的并查集的路径压缩。int find(x){ int p=x; if(p!=pre[p])pre[p]=find(pre[p]); return pre[p];}前面我们讲了,这一步操作能够使得find路径上的节点全部指向根节点。好的,我们知道pre[]数组是保存某个节点的父节点是谁。而加权并查集要一个value[]数组保存某个节点与他父节点之间的权值。而这个权值在其父节点改变时自然也会发生改变。带权并查集路径压缩int find(x){ i

2020-10-11 23:23:30 136

原创 堆排序——华农oj8644

8644 堆排序时间限制:1000MS 代码长度限制:10KB提交次数:1909 通过次数:1257题型: 编程题 语言: G++;GCCDescription用函数实现堆排序,并输出每趟排序的结果输入格式第一行:键盘输入待排序关键的个数n第二行:输入n个待排序关键字,用空格分隔数据输出格式第一行:初始建堆后的结果其后各行输出交换堆顶元素并调整堆的结果,数据之间用一个空格分隔输入样例105 4 8 0 9 3 2 6 7 1输出样例9 7 8 6 4 3 2 5 0 1

2020-05-11 17:23:36 825

原创 HDU-1166 敌兵布阵

C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人,例如Derek问:“Tidy,马上汇报第3个营地

2020-05-09 22:30:28 177

原创 堆中的路径——题解

5-树7 堆中的路径 (25分)将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。输出格式:对输入中给出的每个下标i,在一行中输出从H[i]到根结点的路径上的数据。数字间以1个空格分隔,行末不得有多余空格。输入样例:5 346

2020-05-09 18:15:17 278

原创 归并排序两种实现——代码

#include<cstdio>#include<cstring>#include<cstdlib>#define maxn 10000void Marge_sort(int ap[],int n);void Divide(int ap[],int tmp[],int left,int right);void Combine(int ap[],i...

2020-05-07 17:10:13 128

原创 拓扑排序入门

实际上挺早之前便了解了拓扑排序,但一直不是很清楚他有什么用的。最近做了一道拓扑排序的题目,大概对这类问题有了一些了解吧。拓扑排序适用于一种特殊的图,这种图有以下特征。1:该图为有向图。2:该图有严格的顺序,不存在后面的被指向的节点去指向前面的节点。即不存在a->b->c->a这一条。拓扑排序有两个作用,检查是否是拓扑图和输出拓扑序。话不多少,例题来见CodeForce...

2020-05-07 09:06:15 134

原创 选择排序——华农oj 8643

8643 简单选择排序时间限制:1000MS 代码长度限制:10KB提交次数:2235 通过次数:1301题型: 编程题 语言: G++;GCCDescription用函数实现简单选择排序,并输出每趟排序的结果输入格式第一行:键盘输入待排序关键的个数n第二行:输入n个待排序关键字,用空格分隔数据输出格式每行输出每趟排序的结果,数据之间用一个空格分隔输入样例105 4...

2020-05-06 17:24:52 467

原创 希尔排序——华农oj 8640

8640 希尔(shell)排序时间限制:1000MS 代码长度限制:10KB提交次数:1858 通过次数:1304题型: 编程题 语言: G++;GCCDescription用函数实现希尔(shell)排序,并输出每趟排序的结果,初始增量d=n/2,其后d=d/2输入格式第一行:键盘输入待排序关键的个数n第二行:输入n个待排序关键字,用空格分隔数据输出格式每行输出一趟排...

2020-05-06 16:57:28 810

原创 直接插入排序——华农oj 8638

8638 直接插入排序时间限制:1000MS 代码长度限制:10KB提交次数:2050 通过次数:1393题型: 编程题 语言: G++;GCCDescription用函数实现直接插入排序,并输出每趟排序的结果.输入格式第一行:键盘输入待排序关键的个数n第二行:输入n个待排序关键字,用空格分隔数据输出格式每行输出一趟排序结果,数据之间用一个空格分隔输入样例105 4...

2020-05-06 16:03:19 1138

原创 冒泡排序——华农oj 8641

8641 冒泡排序时间限制:1000MS 代码长度限制:10KB提交次数:3093 通过次数:1361题型: 编程题 语言: G++;GCCDescription用函数实现冒泡排序,并输出每趟排序的结果(要求当一趟冒泡过程中不再有数据交换,则排序结束)输入格式第一行:键盘输入待排序关键的个数n第二行:输入n个待排序关键字,用空格分隔数据输出格式每行输出每趟排序结果,数据之...

2020-05-06 15:26:09 846

原创 棋盘问题 POJ - 1321

棋盘问题 POJ - 1321/* 这是一道广度优先搜索的题目。 */#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>int n,k,cnt;char g[10][10];int visit[10]; //visit表示...

2020-04-29 15:44:59 82

原创 动态规划简单题——不断更新

hdu 2084 数塔 简单从上往下递推#include<cstdio>#include<cstring>#include<cstdlib>/* 1;分解问题:dp[i][j]表示第i行第j列的位置到达底部的最大数字和 2;初始状态:最下面一行的dp值就是原三角形底对应位置的值 3:状态转移方程:dp[i][j]=max(dp[i+1][j],d...

2020-04-23 21:26:32 150

原创 华农oj数据结构——8581

8581 线性链表逆置时间限制:1000MS 代码长度限制:10KB提交次数:2811 通过次数:2032题型: 编程题 语言: G++;GCCDescription线性链表的基本操作如下:#include<stdio.h>#include<malloc.h>#define ERROR 0#define OK 1#define ElemType i...

2020-04-22 11:13:33 449

原创 华农oj数据结构——8580

8580 合并链表时间限制:1000MS 代码长度限制:10KB提交次数:3724 通过次数:2077题型: 编程题 语言: G++;GCCDescription线性链表的基本操作如下:#include<stdio.h>#include<malloc.h>#define ERROR 0#define OK 1#define ElemType int...

2020-04-22 10:46:14 703

原创 华农oj数据结构——8579

8579 链式线性表的基本操作时间限制:1000MS 代码长度限制:10KB提交次数:5567 通过次数:2176题型: 编程题 语言: G++;GCCDescription 编写算法,创建一个含有n个元素的带头结点的单链表L并实现插入、删除、遍历操作。本题目提供部分代码,请补全内容。#include<stdio.h>#include<malloc.h>...

2020-04-22 10:14:11 915

原创 华农oj数据结构——8577

8577 合并顺序表时间限制:1000MS 代码长度限制:10KB提交次数:5339 通过次数:2251题型: 编程题 语言: G++;GCCDescription顺序表的基本操作代码如下:#include<stdio.h>#include<malloc.h>#define OK 1#define ERROR 0#define LIST_INIT_...

2020-04-21 11:59:07 1021

原创 华农oj数据结构——8578

8578 顺序表逆置时间限制:1000MS 代码长度限制:10KB提交次数:3660 通过次数:2149题型: 编程题 语言: G++;GCCDescription顺序表的基本操作代码如下:#include<stdio.h>#include<malloc.h>#define OK 1#define ERROR 0#define LIST_INIT_...

2020-04-21 11:34:13 669

原创 华农oj数据结构——8576

8576 顺序线性表的基本操作时间限制:1000MS 代码长度限制:10KB提交次数:9027 通过次数:2456题型: 编程题 语言: G++;GCCDescription 编写算法,创建初始化容量为LIST_INIT_SIZE的顺序表T,并实现插入、删除、遍历操作。本题目给出部分代码,请补全内容。#include<stdio.h>#include<mallo...

2020-04-19 11:12:42 1212

原创 纠结的分析过程——01背包

该题代码中包含具体分析,相信和我一样纠结的感觉01背包逻辑顺不通的人能够有所收获。8615 快乐该题有题解时间限制:500MS 代码长度限制:10KB提交次数:312 通过次数:98题型: 编程题 语言: G++;GCCDescriptionLian是一个喜欢看动画片的人,自从成为ACMer(ACM爱好者)之后,他又迷上了网上做题。做题让他快乐,不过这也是需要付出精力的!!假...

2020-04-16 22:40:52 111

原创 新教务管理系统——实时设计

感觉原来的教务系统设计理念有些问题,故重新设计。已实现功能。主页面1:主页面的显示2:主页面的结束//头文件区上分界线 #include<cstdio>#include<cstring>#include<conio.h>#include<cstdlib>#include<windows.h>using namespa...

2020-04-06 08:36:31 992 10

原创 实时设计——教务管理系统

//头文件区上分界线 #include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<conio.h>#include<windows.h>using namespace std;//头文件区下分界线 //函数声明...

2020-03-29 10:12:40 1379 1

原创 最小生成树

每当我们对一个新的知识点进行学习的时候,我们总要解决以下几个问题。最小生成树是要干什么?最小生成树能解决哪一类问题?最小生成树的原理?最小生成树的代码实现?1,最小生成树是要干什么?简单来说就是,假如我们有一个无向带权图,我们要找到这样的一棵树,使得该图的所有的点都在该树上,并且要使得所有边的权值相加最小。2,最小生成树能解决哪一类问题?下面给出这样一个问题,假如有n个村庄,你知道打通各...

2020-03-28 15:25:48 176

原创 巡逻队的士兵

题目:巡逻的士兵时间限制:1000MS 内存限制:65536K提交次数:217 通过次数:58题型: 编程题 语言: G++;GCCDescription有N个士兵站成一队列, 现在需要选择几个士兵派去侦察。为了选择合适的士兵, 多次进行如下操作: 如果队列超过三个士兵, 那么去除掉所有站立位置为奇数的士兵,或者是去除掉所有站立位置为偶数的士兵。直到不超过三个战士,他们将被送...

2020-03-26 00:25:28 152

原创 教务管理系统——补充(结构体)

这是我们主要的数据结构形式/*刚开始的时候,先不要求要有太高级的操作,所以简化操作。现在是主干是两条带有两个尾指针的链表,一条是学生信息链,一条是课程信息链。有一些功能在初次代码中将不会去实现,之后有时间就去完善。 1:在这里,简化了老师这一人物,将它看成了课程,如果要加上老师这一人物,将会变为带有三个尾节点的链表。2:在这里,我没有用数组二分查找加快查找过程。3:在这里,我没有用模...

2020-03-24 15:46:30 261

原创 有关文件的一些函数及操作方法,待完善

remove("这里面填文件名");//删除文件rename("原文件名","新文件名");//修改文件的名字

2020-03-24 00:11:41 60

原创 一些小的知识点,一直补充。

‘\n’ :换行,跳到下一行的开头‘\r’:回车,跳到这一行的开头

2020-03-23 23:12:57 86

原创 time.h中计算程序运行时间的函数

clock():#include<time.h> //头文件clock_t start,stop; //定义两个clock函数返回类型start=clock(); //开始计时/*函数主体部分 */ stop=clock(); //停止计时((double)(stop-start))/CLK_TCK; //这个值就是函数...

2020-03-23 22:53:57 943 1

原创 conio.h中的常用函数——getch()

头文件conio.h中包含函数getch();getch():#include<stdio.h>#include<string.h>#include<conio.h>int main(){ char a; a=getch(); //无缓冲区,就是不用按回车,输入字符,直接读取与处理,相比于getchar() if(a<='z'&...

2020-03-23 21:09:57 2922 1

原创 同余定理——简单理解与使用

同余对于防止数的溢出和对某些题有着特殊的作用,博主学的也不深,就对简单的同余应用进行一个分享。(中间的乘号不是我不打,是这个乘号会将文章布局弄乱,blog缺陷)先列举几个公式在此之前,先证明一个公式:如果a%n=b%n,就说a与b同余,则(a-b)%n=0。也就是说a-b是n的整数倍。为什么呢?你想想,如果a%n=0,则a=a%n+(a/n)n,后面一项的/号是整除,也就是说任意一个数能分为...

2020-03-22 13:37:57 3783 1

原创 最短路径——Dijkstra算法

在现实生活中我们常常会遇到这样一类问题:知道一些村庄,知道他们的一些路连接及长度的情况,求其中两个村庄的最短路径。一般这种问题有两种解决方法,一种是Dijkstra算法,而另一种便是Floyd算法。我们今天先来学习Dijkstra算法。首先是在算法思想与证明方面,我看了一些不同的资料,觉得电子科技大学的Mooc(数据结构与算法) 在这个算法原理与抽象实现方面讲的很好,建议不是很懂算法原理的人先...

2020-03-21 00:31:30 178

原创 求素数——含素筛方法

实际上,素筛算是一个相对来说挺简单的方法,但我之前一直都是凭自己的一些理解而写代码,于是决定在来系统的学习一下。一般来说,我们判断一个数是否是素数,一般是看这个数除了1与本身之外是否是否还有因子,核心代码如下int n,i;scanf("%d",&n);for(i=2;i<n;i++){ if(n%i==0)break;}if(i>=n)printf("ture"...

2020-03-19 23:00:31 110

原创 教务系统管理员框架

/*管理员操作*/if(pand0){//管理员端}else if(pand1){//教师端}else if(pand==2){//学生端}else {//输入错误}//学生端(可以用switch case优化)if(operate0){//返回主页面}else if(operate1){//查看自己的成绩 —退回上一页}else if(operate2){//...

2020-03-18 16:03:11 394

空空如也

空空如也

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

TA关注的人

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