- 博客(22)
- 收藏
- 关注
原创 c++折半查找的次数
题目描述给你一个无重复数的有序序列,如果采用折半查找的方式,对于给定的数,需要比较几次找到,请编程实现。输入第一行是N,表示序列中数的个数,序列最长1000,第二行是一个有序序列,第三行是要找的数x。输出如果找到x,输出折半比较的次数,否则输出NO。样例输入115 13 19 21 37 56 64 75 80 88 9219样例输出2示例代码...
2022-06-25 16:33:55
967
原创 c++任意二叉树的建立与遍历
题目描述有若干个节点,每个节点上都有编号,把这些节点随意地构成二叉树,请编程输出该二叉树的前序遍历序列。输入第一行是n(n小于100),表示有n个节点,每个节点按从1到n依次编号。第一行后有n行,每行三个正整数i、l、r,分别表示节点i及对应的左右孩子的编号,如果不存在孩子则以-1表示。三个整数之间用一个空格隔开。输出输出该二叉数的前序遍历序列。样例输入41 2 43 1 -12 -1 -14 -1 -1样例输出前序遍历:3 1 2 4中序遍历:2 1 4 3后序遍历:2 4 1 3示例代码:(效
2022-06-19 16:45:07
388
1
原创 c++蓝桥杯 长草
【问题描述】小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1。小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。这些草长得很快,每个月,草都会向外长出一些,如果一个小块种了草,则它将向自己的上、下、左、右四小块空地扩展,这四小块空地都将变为有草的小块。请告诉小明,k 个月后空地上哪些地方有草。【输入格式】输入的第一行包含两个整数 n, m。接下来 n 行,每行包含 m 个字母,表示初始的空地状态,字母之间没有空格。如果为小数点,表示为空地,如果
2022-04-04 02:12:41
461
原创 c++音节判断
【问题描述】小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。给定一个单词,请判断这个单词是否也是这种单词,如果是请输出yes,否则请输出no。元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。【输入格式】输入一行,包含一个单词,单词中只包含小写英文字母。【输出格式】输出答案,或者为yes,或者为n
2022-04-04 01:21:29
298
原创 c++递增三元组
【问题描述】在数列 a[1], a[2], ..., a[n] 中,如果对于下标 i, j, k满足 0 < i < j < k < n+1 且 a[i] < a[j] < a[k],称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。【输入格式】输入的第一行包含一个整数 n。第二行包含 n 个整数 a[1], a[2], ..., a[n],相邻的整数
2022-04-04 01:20:12
633
原创 c++数位递增的数
【问题描述】一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,例如1135是一个数位递增的数,而1024不是一个数位递增的数。给定正整数 n,请问在整数 1 至 n 中有多少个数位递增的数?【输入格式】输入的第一行包含一个整数 n。【输出格式】输出一行包含一个整数,表示答案。【样例输入】30【样例输出】26【评测用例规模与约定】对于 40% 的评测用例,1 <= n <= 1000。对于 80% 的评测用例,1
2022-04-04 01:18:43
1141
原创 c++数字9
【问题描述】在1至2019中,有多少个数的数位中包含数字9?注意,有的数中的数位中包含多个9,这个数只算一次。例如,1999这个数包含数字9,在计算只是算一个数。【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。#include<iostream>#include<cmath>using namespace std;bool flag(int n){ int
2022-04-04 01:18:02
519
原创 c++约数个数
【问题描述】1200000有多少个约数(只计算正约数)。【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。#include<iostream>#include<algorithm>using namespace std;#define T 1200000int ans = 0;int main(){ for (int i = 1; i <= T; i++)
2022-04-04 01:16:51
1102
原创 c++捡水果(dp实例)
题目背景:某君在玩一款游戏,他在一个山顶,现在他要下山,山上有许多水果,某君每下一个高度就可以捡起一个水果,并且获得水果的能量。山的形状如下所示:31 26 2 33 5 4 1这是一个高度为4的山,数字代表水果的能量。每次下一个高度,某君需要选择是往左下走,还是往右下走。例如:对于上图的情况,某君能获得的最大能量为,3+1+6+5=15。现在,某君希望你能帮他计算出下山能获得的最大能量。输入格式:第一行为山的高度以下几行为每水果的能量数样例输入:431 2
2022-03-31 22:01:06
4420
原创 c++K个数的和(DFS实例)
题目背景:从n个数中选取k个数,使他们的和为sum,则选取不同数的方案有几种?输入格式:第一行分别为数的总数,选取几个数,和为多少第二行为这n个数,中间用空格隔开输出格式:一个整数,表示有几种选取方案示例代码一:考虑每个数选或者不选用到了可行性剪枝,当目前已经选了大于k个数或者目前选取数的总和以及大于了sum明显不行,剪掉这种情况的树枝#include<iostream>using namespace std;int n, k, sum, ans;in
2022-03-29 22:43:34
2415
原创 c++八皇后问题(DFS实例)
题目背景:八皇后问题,是一个古老而著名的问题,是搜索算法的典型案例。该问题是国际西洋棋棋手马克斯-贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。思路:深搜,考虑从第0行开始每行都放一个皇后,并且在放置的过程中标记该列、该点在主对角线和副对角线的位置。#include<iostream>using namespace std;int ans = 0;int col[10], d1[2
2022-03-29 09:52:27
1626
原创 c++等边三角形(DFS实例)
题目背景:某君手上有一些小木棍,它们长短不一,蒜头君想用这些木棍拼出一个等边三角形,并且每根木棍都要用到。例如,蒜头君手上有长度为1,2,3,3的4根木棍,他可以让长度为1,2的木棍组成一条边,另外2跟分别组成2条边,拼成一个边长为3的等边三角形。蒜头君希望你提前告诉他能不能拼出来,免得白费功夫。输入格式:首先输入一个整数n(3≤n≤10),表示木棍数量,接下来输入n根木棍的长度pi(1≤pi ≤10000)。输出格式:如果能拼出等边三角形,输出“yes",否则输出“no"。样例输入
2022-03-29 08:51:07
2153
原创 c++迷宫游戏 & 迷宫最短路问题(DFS实例 & BFS实例)
题目背景:我们用一个二维的字符数组来表示迷宫;其中字符 S 表示起点,字符 T 表示终点,字符 * 表示墙壁,字符 . 表示平地。你需要从S出发走到T,每次只能向上下左右相邻的位置移动,不能走出地图,也不能穿过墙壁,每个点只能通过一次。你需要编程来求解出一种从起点到终点的走法。样例输入:5 6....S*.***...*..*.*.***..T....样例输出:.T........H*.***HH.*..*H*.***H.THHHH示例代码:#in
2022-03-26 16:34:33
4872
原创 c++打印锯齿矩阵
题目背景:锯齿矩阵是指每—行包含的元素个数不相同的矩阵。比如:3 5 2 6 12 3 41 6 2 7读入若干对整数(x, y),表示在第x行的末尾加上一个元素y。输出最终的锯齿数组。初始时矩阵为空。输入格式:第一行输入两个整数n, m(1 ≤n, m ≤ 10000),其中n表示锯齿数组的行数,m表示插入的元素总数。接下来一共m行,每行两个整数x, y(1 ≤x ≤n,0≤y≤10000),表示在第x行的末尾插入一个元素y。输出格式:—共输出n行,每行若干个用空格分隔的
2022-03-22 20:25:19
1023
原创 c++评奖(sort排序结构体)
题目背景:东东所在的班级有N名同学,期末考试进行了数学、语文、英语、地理四门功课的测试。班主任要将这N名学生中总分前三名定为本学期的“学习小标兵”。现在给出这N名学生的姓名和各科成绩,请你编程找到总分前三名,并依次输出他们的姓名。所给数据不会有总分相同的情况。输入格式:输入包含N+1行,第一行仅有一个正整数N(3≤N≤40),表示东东班里学生的总数,接下来的N行,每行描述一个学生的考试信息,依次为姓名、数学成绩、语文成绩、英语成绩与地理成绩,两两之间用一个空格分隔。注意:姓名(不会同名)都用小写字
2022-03-17 23:40:23
2291
原创 c++对称字符串
示例代码:#include<iostream>using namespace std;#include<string>int main(){ int n; cin >> n; if (n == 1) { cout << 'A'; return 0; } string ans = "A"; for (int i = 1; i < n; i++) { string tmp = ans; //加上行数对应的大..
2022-03-08 10:49:27
1211
原创 c++字母三角形
输出一个稍微复杂的三角形,输入一个大写字母(A-z)或者一个数字( 1-9 ) 。比如输入是F的时候,输出:输入是3的时候,输出:示例代码:#include<iostream>using namespace std;int main(){ char c; cin >> c; if (c >= 'A' && c <= 'Z') { for (int i = 1; i <=
2022-03-08 10:46:42
3377
原创 c++反转两次的数字
题目背景:反转 一个整数意味着倒置它的所有位。例如,反转 2021 得到 1202 。反转 12300 得到 321 ,不保留前导零 。给你一个整数 num ,反转 num 得到 reversed1 ,接着反转 reversed1 得到 reversed2 。如果 reversed2 等于 num ,返回 true ;否则,返回 false 。示例 1:输入:num = 526输出:true解释:反转 num 得到 625 ,接着反转 625 得到 526 ,等于 num 。示例 2
2022-03-02 19:37:10
801
原创 c++快速排序(三平均划分法优化)
题目背景:要求编写函数qsort来实现快速排序,用户依次输入待排序数据个数、待排序数据以及排序方式。样例输入:588 25 63 10 70样例输出:After quick sorted:7 10 25 63 88#include<iostream>using namespace std;void swap(int& a, int& b){ int temp = a; a = b; b = temp;}void cmpswap(
2022-02-11 18:33:58
656
原创 c++利用递归求数组元素的总和
题目背景:有一个数组,用户声明数组大小和元素,要求编写一个递归函数SumArray来求出该数组中所有元素的和。样例输入:31 2 3样例输出:6思路:分而治之。递归条件为数组的某元素+剩余元素的总和;基线条件为当数组剩余元素个数为0时。#include<iostream>using namespace std;int SumArray(int a[], int n, int len){ if (n == 0) //基线条件 { return 0
2022-01-28 16:36:13
3153
3
原创 c++农场主均分土地为方块
题目背景:假设你是一个农场主,有一块小土地,1680*640那么大,你要将这块土地均匀的分成方块,要使分出的方块足够大,应该怎么分?一个重要信息:将该土地以短边长划分土地,余下一块非方形土地,则适用于这小块土地的最大方块也是适用于整块地的最大方块(由欧几里德算法得出)。思路:分而治之。递归条件为不断划分出这样的小块土地,并在这小块土地中再求原问题(降低了问题的规模);基线条件为这当小块土地是方形土地,即一边是另一边的整数倍时得到答案。#include<iostream>using
2022-01-28 16:28:55
2050
原创 c++字符串中元音字母转置
题目背景:用户输入n(n<=5)个单词,每个单词长度不超过30。将这几个单词从左往右的第一个小写元音字母和从右往左的第一个小写元音字母互换位置,以单词的中间字母为界限。例如,apple变成eppla。——还没写好。。#include<iostream>using namespace std;int main(){ int n; cin >> n; //用户输入n个单词, n<=5, 每个单词长度不超30 char arr[5][30]; for
2022-01-21 19:14:31
944
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人