自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 最高的牛

有 N头牛站成一行,被编队为1、2、3…N,每头牛的身高都为整数。当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。现在,我们只知道其中最高的牛是第 P头,它的身高是 H,剩余牛的身高未知。但是,我们还知道这群牛之中存在着 M对关系,每对关系都指明了某两头牛 A 和 B可以相互看见。求每头牛的身高的最大可能值是多少。输入格式第一行输入整数N,P,H,M,数据用空格隔开。接下来M行,每行输出两个整数 A和 B ,代表牛 A 和牛 B可以相互看见,数据用空格隔开。输出格

2020-08-12 15:56:17 197

原创 增减序列(分差)

给定一个长度为 n 的数列 a1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。输入格式第一行输入正整数n。接下来n行,每行输入一个整数,第i+1行的整数代表ai。输出格式第一行输出最少操作次数。第二行输出最终能得到多少种结果。数据范围0<n≤105,0≤ai<2147483648输入样例:41122输出

2020-08-11 23:00:06 975

原创 奇怪的汉诺塔

汉诺塔问题,条件如下:1、这里有A、B、C和D四座塔。2、这里有n个圆盘,n的数量是恒定的。3、每个圆盘的尺寸都不相同。4、所有的圆盘在开始时都堆叠在塔A上,且圆盘尺寸从塔顶到塔底逐渐增大。5、我们需要将所有的圆盘都从塔A转移到塔D上。6、每次可以移动一个圆盘,当塔为空塔或者塔顶圆盘尺寸大于被移动圆盘时,可将圆盘移至这座塔上。请你求出将所有圆盘从塔A移动到塔D,所需的最小移动次数是多少。*首先我们先分析3个塔的情况,加入现在我们有i个盘,我们要把i个盘移动到c盘中,就要把i-1个盘子移动到b

2020-08-11 22:35:12 191

原创 递归实现排列型枚举

把 1~n 这 n个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数n。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1≤n≤9输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1#include<iostream>using namespace std;int n;int used[10]

2020-08-11 22:10:20 132

原创 递归实现组合型枚举

从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。输入格式两个整数 n,m,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如1 3 5 7排在1 3 6 8前面)。数据范围n>0,0≤m≤n ,n+(n−m)≤25输入样例:5 3输出样例:1 2 31 2 41 2 51 3 41 3 51 4

2020-08-11 21:51:10 95

原创 递归实现指数型枚举

从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3在这一题中我们主要用递归来解决这一个问题,首先我们用一个二进的数来表示这一个状态。如果采用了当前的i就把当前状态的数step

2020-08-11 21:32:52 87

原创 最短Hamilton路径

给定一张 n个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数n。接下来n行每行n个整数,其中第i行第j个整数表示点i到j的距离(记为a[i,j])。对于任意的x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]>=a[x,z]。输出格式输出一个整数,表示最短Hamilton路径的长度

2020-08-11 17:58:44 279

原创 防线(二分)

达达学习数学竞赛的时候受尽了同仁们的鄙视,终于有一天…受尽屈辱的达达黑化成为了黑暗英雄怪兽达达。就如同中二漫画的情节一样,怪兽达达打算毁掉这个世界。数学竞赛界的精英 lqr 打算阻止怪兽达达的阴谋,于是她集合了一支由数学竞赛选手组成的超级行动队。由于队员们个个都智商超群,很快,行动队便来到了怪兽达达的黑暗城堡的下方。但是,同样强大的怪兽达达在城堡周围布置了一条“不可越过”的坚固防线。防线由很多防具组成,这些防具分成了 N 组。我们可以认为防线是一维的,那么每一组防具都分布在防线的某一段上,并且同

2020-08-11 16:45:42 144

原创 奇数码

你一定玩过八数码游戏,它实际上是在一个3×3的网格中进行的,1个空格和1~8这8个数字恰好不重不漏地分布在这3×3的网格中。例如:5 2 81 3 _4 6 7在游戏过程中,可以把空格与其上、下、左、右四个方向之一的数字交换(如果存在)。例如在上例中,空格可与左、上、下面的数字交换,分别变成:5 2 8 5 2 _ 5 2 81 _ 3 1 3 8 1 3 74 6 7 4 6 7 4 6 _奇数码游戏是它的一个扩展,在一

2020-08-10 20:14:42 696 2

原创 线段树

线段树的创建struct segment{ int r,l; int dta;}t[size*4];void build (int p,int l,int r){ t[p].l=l,t[p].t=r; if(l==r) { t[p].dat==a[l]; return ; } int mid=(l+r)/2; build(p*2,l,mid); build(p*2+1,mid+1,r);

2020-08-09 18:34:39 72

原创 反素数

对于任何正整数x,其约数的个数记作g(x),例如g(1)=1、g(6)=4。如果某个正整数x满足:对于任意的小于x的正整数 i,都有g(x)>g(i) ,则称x为反素数。例如,整数1,2,4,6等都是反素数。现在给定一个数N,请求出不超过N的最大的反素数。#include<bits/stdc++.h>using namespace std;int pp[]={2,3,5,7,11,13,17,19,13,29};int n;int sum=0,minv;void dfs(

2020-08-08 17:57:39 464

原创 prim算法

主要讲所有的节点分成两个集合,一个集合是属于最小生成树的节点,一个是剩余的节点,从已经选择的节点中选择距离最小的节点x,然后在从没有加入的节点中选择与xl连接的最小的节点加入最小生成树的集合。#include<bits/stdc++.h>using namespace std;int a[3010][3010],d[3010],n,m,ans;bool v[300];void prim(){ memset(d,0x3f,sizeof d); memset(v,0,si

2020-08-03 21:20:37 80

原创 kruskal算法

本算法维护的是最小生成树的权值,我们可以认为把一个图当做一个森林,然后每一个节点各自就构成了一个包含一个节点的树,在任意时刻,都是将从剩余的边中找出一个权值最小的,并且这条边的两个节点属于不同的树。1:建立并查集,各个点各自构成一个集合。2:把所有的边按照权值的从小到大进行排序,然后一次扫描每一条边(x,y,z)。3:x,y属于同一个集合,则忽略这条边,否则加入集合,并累加变得权值4:扫描完所有的边之后,变得到了最小生成树。#include<bits/stdc++.h>using

2020-08-03 20:54:35 325

原创 观光之旅

给定一张无向图,求图中一个至少包含3个点的环,环上的节点不重复,并且环上的边的长度之和最小。该问题称为无向图的最小环问题。你需要输出最小环的方案,若最小环不唯一,输出任意一个均可。输入格式第一行包含两个整数N和M,表示无向图有N个点,M条边。接下来M行,每行包含三个整数u,v,l,表示点u和点v之间有一条边,边长为l。输出格式输出占一行,包含最小环的所有节点(按顺序输出),如果不存在则输出’No solution.’。运用Floyd算法解决问题,首先当外层循环k刚开始的时候,d[i][j]保

2020-08-03 16:03:29 152

原创 floyd算法解决传递闭包问题

//建立临街矩阵d,其中d[i][j]=1,表示i和j之间有关系,d[i][j]=0//,表示i和j之间没有关系。特别的d[i,i]始终为1#include<iostream>using namespace std;int d[310][310],n,m;int main(){ cin>>n>>m; memset(d,0x3f,sizeof d); for(int i=1;i<=n;i++) d[i][i]=1; f

2020-08-02 16:08:24 341

原创 两点间的距离 floyd算法

floyd算法求任意两点间的最短距离,本质是动态规划。d[k,i,j]表示“进过若干个编号不超过k的节点”,从i到j的最短路径长度该问题可以划分为两个子问题 ,经过编号不超过k-1的节点从I到j,过或先从i到k再到j,d[k,i,j]=min(d[k-1,i,j],d[k-1,i,k]+d[k-1,k,j]);初值f[0,i,j]=a[i,j];#include<iostream>using namespace std;int d[310][310],n,m;int main()

2020-08-02 16:02:41 298 1

原创 Dijkstra求单源最短路径

. 给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。**算法的流程如下,1:初始化d[1]=0,其余节点的d值为正无穷大2:找出一个未被标记的、d[x]最小的节点x,然后标记节点x3:扫描节点x的所有出边(x,y,z),如果d[y]>d[x]+z,就使用d[x]+z更新d[y]这个算法只适用于所有的边长都非负的图,全局的最小值不可能被其他的节点更新,**#include<bits/s

2020-08-01 16:53:30 121

原创 spfa求最短路径

给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。数据保证不存在负权回路。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出”impossible”。数据范围1≤n,m≤105,图中涉及边长绝对值均不超过10000。输入样例:3 31

2020-08-01 16:04:43 186

原创 环形运输

在一条环形公路旁均匀地分布着N座仓库,编号为1~N,编号为 i 的仓库与编号为 j 的仓库之间的距离定义为 dist(i,j)=min⁡(|i-j|,N-|i-j|),也就是逆时针或顺时针从 i 到 j 中较近的一种。每座仓库都存有货物,其中编号为 i 的仓库库存量为 Ai。在 i 和 j 两座仓库之间运送货物需要的代价为 Ai+Aj+dist(i,j)。求在哪两座仓库之间运送货物需要的代价最大。输入格式第一行包含一个整数N。第二行包含N个整数A1~AN。输出格式输出一个整数,表示最大代价。

2020-07-30 15:44:54 481

原创 休息时间

在某个星球上,一天由 N 个小时构成,我们称0点到1点为第1个小时、1点到2点为第2个小时,以此类推。在第 i 个小时睡觉能够恢复Ui点体力。在这个星球上住着一头牛,它每天要休息B个小时。它休息的这B个小时不一定连续,可以分成若干段,但是在每段的第一个小时,它需要从清醒逐渐入睡,不能恢复体力,从下一个小时开始才能睡着。为了身体健康,这头牛希望遵循生物钟,每天采用相同的睡觉计划。另外,因为时间是连续的,即每一天的第N个小时和下一天的第1个小时是相连的(N点等于0点),这头牛只需要在每N个小时内休息

2020-07-29 22:30:27 223

原创 选课

学校实行学分制。每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分。学校开设了 N 门的选修课程,每个学生可选课程的数量 M 是给定的。学生选修了这 M 门课并考核通过就能获得相应的学分。在选修课程中,有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其他的一些课程的基础上才能选修。例如《Windows程序设计》必须在选修了《Windows操作基础》之后才能选修。我们称《Windows操作基础》是《Windows程序设计》的先修课。每门课的直接先修课最多只有一门。两门课可

2020-07-29 17:59:00 207 1

原创 没有上司的舞会

Ural大学有N名职员,编号为1~N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi给出,其中 1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。输入格式第一行一个整数N。接下来N行,第 i 行表示 i 号职员的快乐指数Hi。接下来N-1行,每行输入一对整数L, K,表示K是L的直接上司。输出格式输出最

2020-07-28 22:15:28 631

原创 多边形

“多边形游戏”是一款单人益智游戏。游戏开始时,给定玩家一个具有N个顶点N条边(编号1-N)的多边形,如图1所示,其中N = 4。每个顶点上写有一个整数,每个边上标有一个运算符+(加号)或运算符*(乘号)。第一步,玩家选择一条边,将它删除。接下来在进行N-1步,在每一步中,玩家选择一条边,把这条边以及该边连接的两个顶点用一个新的顶点代替,新顶点上的整数值等于删去的两个顶点上的数按照删去的边上标有的符号进行计算得到的结果。下面是用图1给出的四边形进行游戏的全过程。最终,游戏仅剩一个顶点,顶点上的数值

2020-07-28 20:54:50 166

原创 石子合并

设有N堆石子排成一排,其编号为1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有4堆石子分别为 1 3 5 2, 我们可以先合并1、2堆,代价为4,得到4 5 2, 又合并 1,2堆,代价为9,得到9 2 ,再合并得到11,总代价为4+9+11=24;如果第二步是先合并2,3堆,则代价为7,得到4 7,

2020-07-28 17:43:08 97

原创 硬币

给定N种硬币,其中第 i 种硬币的面值为Ai,共有Ci个。从中选出若干个硬币,把面值相加,若结果为S,则称“面值S能被拼成”。求1~M之间能被拼成的面值有多少个。输入格式输入包含多组测试用例。每组测试用例第一行包含两个整数N和M。第二行包含2N个整数,分别表示A1,A2,…,AN和C1,C2,…,CN。当输入用例N=0,M=0时,表示输入终止,且该用例无需处理。输出格式每组用例输出一个结果,每个结果占一行我们可以考虑每种硬币是否被应用于拼成最后的面值,在i阶段时,f[j]表示在前i

2020-07-28 16:24:30 262

原创 传纸条(动态规划)

小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个 m行 n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n)。从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者向左传递。在活动进行中,小渊希望给小轩传递一张纸条,同时希望小轩给他回复。班里每个同

2020-07-21 21:51:55 545

原创 移动服务(动态规划)

一个公司有三个移动服务员,最初分别在位置1,2,3处。如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去。某一时刻只有一个员工能移动,且不允许在同样的位置出现两个员工。从 p 到 q 移动一个员工,需要花费 c(p,q)。这个函数不一定对称,但保证 c(p,p)=0。给出N个请求,请求发生的位置分别为 p1~pN。公司必须按顺序依次满足所有请求,且过程中不能去其他额外的位置,目标是最小化公司花费,请你帮忙计算这个最小花费。输入格式第1行有两个整数L,N,其中

2020-07-21 18:22:59 403

原创 分级

给定长度为N的序列A,构造一个长度为N的序列B,满足:1、B非严格单调,即B1≤B2≤…≤BN或B1≥B2≥…≥BN。2、最小化 S=∑Ni=1|Ai−Bi|。只需要求出这个最小值S。输入格式第一行包含一个整数N。接下来N行,每行包含一个整数Ai。输出格式输出一个整数,表示最小S值。数据范围1≤N≤2000,0≤Ai≤109输入样例:71324539输出样例:3在这一道题中,我们用动态规划来解决这一道题,首先我们要求出序列b,b可能是单调递增的,也可能是

2020-07-21 15:30:16 208

原创 杨老师的照相排列(dp)

有 N 个学生合影,站成左端对齐的 k 排,每排分别有 N1,N2,…,Nk 个人。 (N1≥N2≥…≥Nk)第1排站在最后边,第 k排站在最前边。学生的身高互不相同,把他们从高到底依次标记为 1,2,…,N。在合影时要求每一排从左到右身高递减,每一列从后到前身高也递减。问一共有多少种安排合影位置的方案?下面的一排三角矩阵给出了当 N=6,k=3,N1=3,N2=2,N3=1时的全部16种合影方案。注意身高最高的是1,最低的是6。123 123 124 124 125 125 126 1

2020-07-20 20:05:35 253

原创 一个简单的整数问题

给定长度为N的数列A,然后输入M行操作指令。第一类指令形如“C l r d”,表示把数列中第l~r个数都加d。第二类指令形如“Q X”,表示询问数列中第x个数的值。对于每个询问,输出一个整数表示答案。输入格式第一行包含两个整数N和M。第二行包含N个整数A[i]。接下来M行表示M条指令,每条指令的格式如题目描述所示。输出格式对于每个询问,输出一个整数表示答案。每个答案占一行。数据范围1≤N,M≤105,|d|≤10000,|A[i]|≤1000000000样例输入样例:10

2020-07-19 16:43:59 496

原创 食物链(并查集)

动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是”1 X Y”,表示X和Y是同类。第二种说法是”2 X Y”,表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。1) 当前的话与前面的

2020-07-19 10:16:46 64

原创 银河英雄传说

有一个划分为N列的星际战场,各列依次编号为1,2,…,N。有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列。有T条指令,每条指令格式为以下两种之一:1、M i j,表示让第i号战舰所在列的全部战舰保持原有顺序,接在第j号战舰所在列的尾部。2、C i j,表示询问第i号战舰与第j号战舰当前是否处于同一列中,如果在同一列中,它们之间间隔了多少艘战舰。现在需要你编写一个程序,处理一系列的指令。输入格式第一行包含整数T,表示共有T条指令。接下来T行,每行一个指令,指令有两种形式:M

2020-07-18 16:57:07 166

原创 程序自动分析(并查集)

在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一个问题中的约束条件为:x1=x2,x2=x3,x3=x4,x1≠x4,这些约束条件显然是不可能同时被满足的,因此这个问题应判定为不可被满足。现在给出一些约束满足问题,请分别对它们进行判定。输入格式输入文

2020-07-18 16:44:29 538

原创 项链(最小表示法)

有一天,达达捡了一条价值连城的宝石项链,但是,一个严重的问题是,他并不知道项链的主人是谁!在得知此事后,很多人向达达发来了很多邮件,都说项链是自己的,要求他归还(显然其中最多只有一个人说了真话)。达达要求每个人都写了一段关于自己项链的描述: 项链上的宝石用数字0至9来标示。一个对于项链的表示就是从项链的某个宝石开始,顺指针绕一圈,沿途记下经过的宝石,比如项链: 0-1-2-3 ,它的可能的四种表示是0123、1230、2301、3012。达达现在心急如焚,于是他找到了你,希望你能够编写一个程序,判断

2020-07-17 13:21:04 324

原创 滑动窗口

给定一个大小为n≤106的数组。有一个大小为k的滑动窗口,它从数组的最左边移动到最右边。您只能在窗口中看到k个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为[1 3 -1 -3 5 3 6 7],k为3。窗口位置 最小值 最大值[1 3 -1] -3 5 3 6 7 -1 31 [3 -1 -3] 5 3 6 7 -3 31 3 [-1 -3 5] 3 6 7 -3 51 3 -1 [-3 5 3] 6 7 -3 51 3 -1 -3 [5 3 6] 7 3 61 3

2020-07-16 21:09:45 164

原创 城市游戏

有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。这片土地被分成N*M个格子,每个格子里写着’R’或者’F’,R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着’F’并且面积最大。但是rainbow和freda的OI水平都弱爆了,找不出这块土地,而蓝兔也想看freda卖萌(她显然是不会编程的……),所以它们决定,如果你找到的土地面积为S,它

2020-07-16 19:26:40 164

原创 表达式计算

给出一个表达式,其中运算符仅包含+,-,*,/,^(加 减 乘 整除 乘方)要求求出表达式的最终值。数据可能会出现括号情况,还有可能出现多余括号情况。数据保证不会出现大于或等于231的答案。数据可能会出现负数情况。输入格式输入仅一行,即为表达式。输出格式输出仅一行,既为表达式算出的结果。输入样例:(2+2)^(1+1)输出样例:16这道题应用栈来将它解决掉,不要看代码长,只要理解了就不难了。首先一个计算式中含有数字和操作符,我们要建立两个栈,一个栈存放数字,一个栈存放操作符。例如这和

2020-07-16 16:31:50 547

原创 括号画家

达达是一名漫画家,她有一个奇特的爱好,就是在纸上画括号。这一天,刚刚起床的达达画了一排括号序列,其中包含小括号( )、中括号[ ]和大括号{ },总长度为N。这排随意绘制的括号序列显得杂乱无章,于是达达定义了什么样的括号序列是美观的:(1) 空的括号序列是美观的;(2) 若括号序列A是美观的,则括号序列 (A)、[A]、{A} 也是美观的;(3) 若括号序列A、B都是美观的,则括号序列AB也是美观的。例如 (){} 是美观的括号序列,而)({)[}]( 则不是。现在达达想在她绘制的括号序列中,

2020-07-16 10:32:04 245

原创 奇怪的汉诺塔

汉诺塔问题,条件如下:1、这里有A、B、C和D四座塔。2、这里有n个圆盘,n的数量是恒定的。3、每个圆盘的尺寸都不相同。4、所有的圆盘在开始时都堆叠在塔A上,且圆盘尺寸从塔顶到塔底逐渐增大。5、我们需要将所有的圆盘都从塔A转移到塔D上。6、每次可以移动一个圆盘,当塔为空塔或者塔顶圆盘尺寸大于被移动圆盘时,可将圆盘移至这座塔上。请你求出将所有圆盘从塔A移动到塔D,所需的最小移动次数是多少。输入格式没有输入输出格式对于每一个整数n(1≤n≤12),输出一个满足条件的最小移动次数,每个结果占

2020-07-15 21:47:37 78

原创 动态中位数

依次读入一个整数序列,每当已经读入的整数个数为奇数时,输出已读入的整数构成的序列的中位数。输入格式第一行输入一个整数P,代表后面数据集的个数,接下来若干行输入各个数据集。每个数据集的第一行首先输入一个代表数据集的编号的整数。然后输入一个整数M,代表数据集中包含数据的个数,M一定为奇数,数据之间用空格隔开。数据集的剩余行由数据集的数据构成,每行包含10个数据,最后一行数据量可能少于10个,数据之间用空格隔开。输出格式对于每个数据集,第一行输出两个整数,分别代表数据集的编号以及输出中位数的个数(应

2020-07-15 21:22:18 109

空空如也

空空如也

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

TA关注的人

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