自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 20-堆及应用

1、堆排序P1177 【模板】快速排序题目描述利用快速排序算法将读入的 N 个数从小到大排序后输出。快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++ 选手请不要试图使用 STL,虽然你可以使用 sort 一遍过,但是你并没有掌握快速排序算法的精髓。)输入格式第 1 行为一个正整数 N,第 2 行包含 N 个空格隔开的正整数 ai​,为你需要进行排序的数,数据保证了Ai ​不超过 10^9。输出格式将给定的 N

2022-02-20 15:45:18 94

原创 19-二叉树

1、先序中序求后序1339 【例3-4】求后序遍历【题目描述】输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。【输入】共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写字母表示。【输出】一行,表示树的后序遍历序列。【输入样例】abdecdbeac【输出样例】debca<代码>#include<bits/stdc++.h>using namespace std;stri

2022-02-20 15:37:46 212

原创 18-树图基础

1、广搜遍历AcWing 847. 图中点的层次给定一个 n 个点 m条边的有向图,图中可能存在重边和自环。所有边的长度都是 1,点的编号为 1∼n。请你求出 1号点到 n 号点的最短距离,如果从 1 号点无法走到 n 号点,输出 −1。【输入格式】第一行包含两个整数 n和 m。接下来 m行,每行包含两个整数 a 和 b,表示存在一条从 a 走到 b 的长度为 1的边。【输出格式】输出一个整数,表示 1号点到 n号点的最短距离。数据范围1≤n,m≤105输入样

2021-12-05 10:47:58 481

原创 17-区间DP

1、线性区间1274 【例9.18】合并石子【题目描述】在一个操场上一排地摆放着N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。计算出将N堆石子合并成一堆的最小得分。【输入】第一行为一个正整数N (2≤N≤100);以下N行,每行一个正整数,小于10000,分别表示第i堆石子的个数(1≤i≤N)。【输出】一个正整数,即最小得分。【输入样例】713781621418

2021-12-03 19:29:22 171

原创 16-经典二维DP

1、二维,记忆化1258:【例9.2】数字金字塔【题目描述】观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。在上面的样例中,从13到8到26到15到24的路径产生了最大的和86。【输入】第一个行包含R(1≤R≤1000),表示行的数目。后面每行为这个数字金字塔特定行包含的整数。所有的被供应的整数是非负的且不大于100。【输出】单独的一行,包含那个可能得到的最大的和。

2021-12-03 19:23:52 1049

原创 15-DP之公共子序列问题

1、最长公共1265 【例9.9】最长公共子序列【题目描述】一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1,x2,…,xm>,则另一序列Z=<z1,z2,…,zk>是X的子序列是指存在一个严格递增的下标序列<i1,i2,…,ik>,使得对于所有j=1,2,…,k有: Xij=Zj例如,序列Z=<B,C,D,B>是序列X=<A,B,C,B,D,A,B>的子序列,相应的递增下标序列为&lt.

2021-11-06 14:10:37 552

原创 14-7种背包问题

1、01背包1267 【例9.11】01背包问题【题目描述】一个旅行者有一个最多能装 M公斤的背包,现在有 n 件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn,求旅行者能获得最大总价值。【输入】第一行:两个整数,M(背包容量,M<=200)和N(物品数量,N<=30);第2..N+1行:每行二个整数Wi,Ci,表示每个物品的重量和价值。【输出】仅一行,一个数,表示最大总价值。【输入样例】10 42 13

2021-10-31 15:21:44 210

原创 13-DP之最长子序列问题

1、最长上升+方案1259 【例9.3】求最长不下降序列【题目描述】设有由n(1≤n≤200)个不相同的整数组成的数列,记为:b(1)、b(2)、……、b(n)若存在i1<i2<i3<…<ie 且有b(i1)<=b(i2)<=…<=b(ie)则称为长度为e的不下降序列。程序要求,当原数列出之后,求出最长的不下降序列。例如13,7,9,16,38,24,37,18,44,19,21,22,63,15。例中13,16,18,19,21,22,63就是一个

2021-10-31 15:14:23 264

原创 12-STL+位运算+离散化+中位数+链表

1、set,去重AcWing 1610. 朋友数如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123和 51 就是朋友数,因为 1+2+3=5+1=6,而 6就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。【输入格式】输入第一行给出正整数 N。随后一行给出 N个正整数,数字间以空格分隔。【输出格式】首先第一行输出给定数字中不同的朋友证号的个数;随后一行按递增顺序输出这些朋友证号,数字间

2021-10-21 11:36:48 135

原创 11-深搜回溯

1、简单深搜1335 【例2-4】连通块【题目描述】一个n × m的方格图,一些格子被涂成了黑色,在方格图中被标为1,白色格子标为0。问有多少个四连通的黑色格子连通块。四连通的黑色格子连通块指的是一片由黑色格子组成的区域,其中的每个黑色格子能通过四连通的走法(上下左右),只走黑色格子,到达该联通块中的其它黑色格子。【输入】第一行两个整数n,m(1≤n,m≤100),表示一个n × m的方格图。接下来n行,每行m个整数,分别为0或1,表示这个格子是黑色还是白色。【输出】一行一个

2021-10-21 11:25:34 98

原创 00-一本通C++入门题单完整版

C++入门题单 课时 章节 题号 内容 题目 1 C++程序设计入门 1 cout 1001 Hello,World! 2 变量int,cin 1000:入门测试题目 3 变量char 1004 字符三角形 4 控制位数输出 1003 对齐输出 5 算数运算,float,小数点位数 2061 【例1.2】梯形面积 6 double 1010:计算分数的浮点数值 7

2021-10-19 09:48:54 654

原创 10-广搜

1、最小步数1252:走迷宫【题目描述】一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。只能在水平方向或垂直方向走,不能斜着走。【输入】第一行是两个整数,R和C,代表迷宫的长和宽。( 1<= R,C <= 40)接下来是R行,每行C个字符,代表整个迷宫。空地格子用‘.’表示,有障碍物的格子用‘#’表示。迷宫左上角和右下角都是‘.’。【输出】输出从左

2021-10-17 15:22:02 119

原创 08- 栈

1、简单栈1331:【例1-2】后缀表达式的值【题目描述】从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。比如,16–9*(4+3)转换成后缀表达式为:16□9□4□3□+*–,在字符数组A中的形式为:栈中的变化情况:运行结果:-47提示:输入字符串长度小于250,参与运算的整数及结果之绝对值均在264范围内,如有除法保证能整除。

2021-10-17 09:41:02 120

原创 07-二分

1、递归之分治1325:【例7.4】 循环比赛日程表【题目描述】设有N个选手进行循环比赛,其中N=2M,要求每名选手要与其他N−1名选手都赛一次,每名选手每天比赛一次,循环赛共进行N−1天,要求每天没有选手轮空。【输入】输入:M。【输出】输出:表格形式的比赛安排表。一行各数据间用一个空格隔开。【输入样例】3【输出样例】1 2 3 4 5 6 7 82 1 4 3 6 5 8 73 4 1 2 7 8 5 64 3 2 1 8 7 6 55 6 7

2021-10-16 16:40:12 78

原创 09-队列

1、简单队列1332 【例2-1】周末舞会【题目描述】假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。【输入】第一行两队的人数;第二行舞曲的数目。【输出】配对情况。【输入样例】4 67【输出样例】1 12 23 34 41 52 63 1

2021-10-16 16:28:28 101

原创 06-排序

1、冒泡、选择、插入排序1181:整数奇偶排序【题目描述】给定10个整数的序列,要求对其重新排序。排序要求:1.奇数在前,偶数在后;2.奇数按从大到小排序;3.偶数按从小到大排序。【输入】输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于30000。【输出】按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。【输入样例】4 7 3 13 11 12 0 47 34 98【输出样例】47 13 11

2021-10-16 12:27:11 975

原创 05-递归

1、简单递归+记忆化1204:爬楼梯【题目描述】树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一共3种方法。【输入】输入包含若干行,每行包含一个正整数N,代表楼梯级数,1≤N≤30。【输出】不同的走法数,每一行输入对应一行输出。【输入样例】5810【输出样例】83489<代码1>递归#inc

2021-10-16 12:22:15 624

原创 04-前缀和 差分

1、一维前缀和AcWing 795. 前缀和输入一个长度为 n的整数序列。接下来再输入 m个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l个数到第 r个数的和。【输入格式】第一行包含两个整数 n和 m。第二行包含 n个整数,表示整数数列。接下来 m行,每行包含两个整数 l 和 r,表示一个询问的区间范围。【输出格式】共 m行,每行输出一个询问的结果。数据范围1≤l≤r≤n,1≤n,m≤100000,−1000≤数列中元素的值≤100

2021-10-16 12:14:18 81

原创 03-贪心

1、简单贪心1319:【例6.1】排队接水【题目描述】有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。【输入】共两行,第一行为n(1≤n≤1000);第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。【输出】有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。【输入样例】10...

2021-10-15 15:35:01 147

原创 02-递推

1、简单递推1188:菲波那契数列(2)【题目描述】菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。【输入】第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 1000000)。【输出】n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数对1000取模得到的结果。【输入样例】

2021-10-15 12:46:25 112

原创 01-高精度

01-高精度1、高精加高精1168:大整数加法【题目描述】求两个不超过200位的非负整数的和。【输入】有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。【输出】一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。【输入样例】2222222222222222222233333333333333333333【输出样例】55555555555555555555<代码>#include&

2021-10-15 12:31:54 62

空空如也

空空如也

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

TA关注的人

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