自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树的遍历(C++)

文章目录1、先序遍历2、中序遍历3、后序遍历以如下二叉树为例:1、先序遍历【遍历过程】a.访问根结点;b.先序遍历其左子树;c.先序遍历其右子树。先序遍历序列为:ABDEFCGH【代码】//前序遍历 void GetPreOT(int bt){ if(bt == -1) return ; else{ cout << T[bt].Data; GetPreOT(T[bt].Left); GetPreOT(T[bt].Right); }}2、中序遍历【

2021-03-22 21:30:23 2626

原创 求树的高度(C++)

题目描述现给定一棵树,请你求出它的高度。输入格式输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编号第i个结点,给出该结点中存储的1个英文大写字母、其左孩子结点的编号、右孩子结点的编号。如果孩子结点为空,则在相应位置上给出“-”。给出的数据间用一个空格分隔。注意:题目保证每个结点中存储的字母是不同的。输出格式输出数的高度。输入样例8A 1 2B 3 4C 5 -D - -E 6 -

2021-03-22 20:17:38 2098

原创 STL 之 bitset

bitset本文来自博客:https://ac-fun.blog.csdn.net/article/details/113939257简介bitset 模板类由若干个位(bit)组成,它提供一些成员函数,使程序员不必通过位运算就能很方便地访问、修改其中的任意一位。bitset 模板类在头文件 #include<bitset> 中。bitset 可看作一个 多位二进制数,每 8 位占用 1 个字节,相当于采用了状态压缩的二进制数组,并支持基本的位运算。在估算程序运行的时间时,我们一般以 3

2021-03-14 20:36:23 593

原创 求不大于n的全部质数(素数 C++)

题目描述输入正整数n(n>=2),求不大于n的全部质数代码【方法一】#include <iostream>using namespace std;int main(){ int n, i, j; cin >> n; for(i = 2; i <= n; i++){ for(j = 2; j <= i; j++){ if(i%j == 0) break; } if(j == i) cout << i <&l

2021-03-12 21:24:03 2758

原创 求阶乘的和(C++)

题目描述给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+… +g!)输入输入有一行,包含一个正整数n (1 < n < 12)。输出输出有一行:阶乘的和。样例输入5样例输出153代码【方法一】(两层 for循环)#include <iostream>using namespace std;int main(){ int n, sum = 0; cin >> n; for(int i=1; i<=n; i++)

2021-03-12 21:01:35 24462 5

原创 【C语言】 itoa()函数 和 atoi()函数(字符串与整型数的转换)

文章目录一、atoi()函数二、itoa()函数三、利用atoi() 和itoa()函数进行进制转换一、atoi()函数atoi()是C语言中的字符串转换成整型数的一个函数(1)【头文件】#include <stdlib.h>(2)【函数原型】int atoi (const char * str);(3)【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等),直到遇上数字或正负符号才开始做转换,而再遇到 非数字 或 字符串结束时(’\0’

2021-03-11 21:44:08 43569 1

原创 【C++】c_str()函数

c_str()函数c_str()函数是C++中 string 类中的函数,其头文件为:#include <string>,它是将C++的 string 转化为C的字符串数组,即 string 与 const char* 之间的转换。如:#include <iostream>#include <string>using namespace std;int main(){ const char* c; string s = "abcd"; c = s.c_s

2021-03-11 20:44:53 5342

原创 栈的应用之前、中、后缀表达式(C++)

一、表达式求值表达式求值是程序设计语言编译的一个最基本的问题。它的实现是栈应用的又一典型例子。仅以算术表达式为例:1.算术表达式的组成将表达式视为由操作数、运算符、界限符(称为单词)组成。【操作数】:常数、变量或符号常量。【算符】:运算符、界限符。2.算术表达式的形式(1)中缀(infix)表达式——表达式的运算符在操作数的中间。即:<操作数><操作符><操作数>       &nbsp

2021-03-10 21:33:25 1650 7

原创 2019(第十届)蓝桥杯省赛 C/C++ B组 真题及解析

文章目录试题 A: 组队题解试题B:年号字串题解试题 A: 组队【问题描述】作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1号位至 5 号位的评分之和最大可能是多少?(如果你把以上文字复制到文本文件中,请务必检查复制的内容是否与文档中的一致。在试题目录下有一个文件 team.txt,内容与上面表格中的相同,请注意第一列是编号)【答案提交】这是一道结果填空的题,你只需要算出结果

2021-02-24 20:30:38 1666

原创 POJ 3187 Backward Digit Sums

Backward Digit Sums题目来源:POJ 3187 Backward Digit SumsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 12372 Accepted: 6854DescriptionFJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 <= N <= 10) in

2020-12-26 19:41:25 120

原创 POJ 1731 Orders

Orders题目来源:POJ 1731 OrdersTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 12474 Accepted: 7327DescriptionThe stores manager has sorted all kinds of goods in an alphabetical order of their labels. All the kinds having labels starting with t

2020-12-26 19:30:41 175

原创 T1204全排列

题目描述给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有 ‘a’ < ‘b’ < … < ‘y’ < ‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。输入格式输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在 11 到 66 之间。输出格式输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前面。字母序如下定义:已知 S = s1,s2…sk, T = t1,t2…tk 成立。输出时

2020-12-23 21:10:22 471

原创 AcWing 823. 排列

题目描述题目来源:AcWing 823. 排列给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入格式共一行,包含一个整数n。输出格式按字典序输出所有排列方案,每个方案占一行。数据范围1≤n≤9输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1代码:#include <iostream>#include <algorithm>using namespac

2020-12-23 20:08:46 153

原创 STL之元素排列next_permutation 、prev_permutation(C++)

文章目录排列函数有关说明函数的使用1、基础使用2、元素的全排列3、自定义排序拓展排列函数有关说明元素的排列,就是我们在数学中学到的的排列,在C++ 的STL中为我们提供了内置的全排列函数 next_permutation() 和 prev_permutation(),函数原型如下:bool next_permutation(BidirectionalIterator beg, BidirectionalIterator end) bool prev_permutatio

2020-12-23 19:14:54 365

原创 NOIP2006 明明的随机数

明明想在学校中请一些同学一起做一项问卷调查。为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入格式输入文件包含2行,第1行为1个正整数,表示所生成的随机数的个数:N 。第2行有N个用空格隔开的正整数,为所产生的随机数。输出格式输出文件也是2行,第1行为1个正整数M,表示不相同的随机数的个数

2020-12-18 20:50:29 520

原创 NOIP2007 统计数字

题目描述AcWing490 统计数字某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5×109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。输入格式输入共n+1行。第1行是整数n,表示自然数的个数;第2至n+1每行一个自然数。输出格式输出包含 m 行(m 为 n 个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。数据范

2020-12-18 20:42:03 533 1

原创 NOIP2007 奖学金

题目描述题目来源:AcWing429 奖学金某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你

2020-12-17 20:35:35 240

原创 STL之sort排序(C++)

文章目录一、sort()函数的说明二、sort()函数的使用方法1、自定义排序准则(常用)(1)简单数组排序(2)结构体排序2、使用sort()函数的内置比较函数3、重载结构体(1)在结构体内部重载(2)在结构体外部重载一、sort()函数的说明排序函数 sort(),其时间复杂度平均为O(N·lg(N)),使用时需声明其头文件 #include <algorithm> 及 using namespace std .STL中的sort()并非只是普通的快速排序,除了对普通的快速排序进行

2020-12-17 19:46:04 1171

原创 STL之链表list(C++)

文章目录1、链表(list)的定义(1)list 在头文件中的定义(2)有关 list 的几点说明2、链表(list)的常用方法用法示例1、链表(list)的定义链表(list)是一个双向链表,可高效地进行插入删除元素。如图,list的结构:(1)list 在头文件中的定义运用 list, 必须声明请头文件:#include <list>。list 类型定义于 namespace std 中,是个 class template:namespace std{template &lt

2020-12-12 15:44:34 1566

原创 STL之数据结构链表

文章目录1、链表——线性表的链式表示(1)单链表(2)循环链表(3)双向链表2、单链表的应用(1)破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),UVa 11988)题目描述问题分析代码1、链表——线性表的链式表示线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。(1)单链表对于元素 ei 来说,除了存储其本身的信息之外,还需要存储一个指示其直接后继的信息(即直接后继的存储位置)。这

2020-12-11 20:07:28 680

原创 STL之优先队列priority_queue(C++)

文章目录1、优先队列(priority_queue)的定义2、元素自定义类型的优先队列(priority_queue)3、优先队列(priority_queue)的主要成员函数(1)优先队列主要的三个成员函数1、优先队列(priority_queue)的定义优先队列是一种抽象数据类型,其元素根据优先级被读取。运用 priority_queue, 必须声明请头文件:#include <queue>。priority_queue 声明:如声明一个元素类型为整型的 priority_queue

2020-12-10 20:34:57 494

原创 STL之队列queue(C++)

文章目录1、队列(queue)的定义2、队列的两种存储表示(1)链队列——队列的链式表示(2)循环队列——队列的顺序表示1、队列(queue)的定义队列(queue)是一种先进先出( FIFO) 的线性表。它只允许在表尾进行插入,而在队头删除元素。运用 queue, 必须声明请头文件:#include <queue>。queue 声明:如声明一个元素类型为整型的 queue:queue<int> st;2、队列的两种存储表示(1)链队列——队列的链式表示(2)循环队列

2020-12-09 20:27:58 1666

原创 STL之栈stack(C++)

文章目录1、栈的定义1、栈的定义栈(stack)是限定在表尾进行插入或删除操作的线性表。如图a,表尾称为栈顶,表头端称为栈底。栈修改的原则为:后进先出。

2020-12-09 16:08:07 1094

原创 STL之map映射(C++)

文章目录1、map 是一个键值对(1)有关 key / value(3)底层实现——红黑树2、map的常用方法(1)注意(2)用法示例3、set的应用安迪的第一个字典(Andy's First Dictionary,Uva 10815)题目描述问题分析代码关于 stringstream1、map 是一个键值对 就是从键(key)到值(value)的映射,比如⼀个人名对应⼀个学号,map 将(key / value)当做元素,它可以根据 key 从小到大的排序准则自动将元素排序,且map的元素唯一。使用

2020-12-08 16:01:24 377

原创 STL之set集合(C++)

文章目录1、set是一个关联式容器(1)关于关联式容器(2)元素唯一性(3)底层实现——红黑树2、set的常用方法(1)注意(2)用法示例1、set是一个关联式容器 set 需声明头文件 #include <set>(1)关于关联式容器    STL容器大的方向分为两类,序列式容器 和 关联式容器,这两者通过数据在容器内的排列来区分,关联容器 是通过 键(key) 存储和读取元素的,而 顺序容器 则通过元素在容器中的 位置顺序 存储和访问元素。标准的STL序列容器包括:vector、li

2020-12-05 16:12:22 817

原创 STL之不定长数组vector(C++)

vector是一个不定长数组它把一些常用操作“封装”在了vector类型内部。例如,若a是一个vector,可以用a.size( )读取它的大小,a.resize( )改变大小,a.push_back( )向尾部添加元素,a.pop_back( )删除最后一个元素。vector是一个模板类,所以需要用vector <int> a或者vector <double> b这样的方式来声明一个vector。vector <int>是一个类似于int a[]的整数数组,而vect

2020-11-30 19:47:29 2075

原创 算法竞赛入门经典(第2版)紫书 第三章数组和字符串 习题

文章目录习题3-1 得分(Score, ACM/ICPC Seoul 2005, UVa1585)习题3-2 分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)习题3-3 数数字(Digit Counting , ACM/ICPC Danang 2007, UVa1225)习题3-4 周期串(Periodic Strings, UVa455)【补充】剑指 Offer 20. 表示数值的字符串习题3-5 谜题(Puzzle, ACM/ICPC World Finals

2020-11-20 20:17:29 814 1

原创 算法竞赛入门经典(第2版)紫书 第三章数组和字符串 例题

文章目录开灯问题开灯问题有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号。k≤n≤1000。样例输入7 3样例输出1 5 6 7...

2020-11-14 19:43:00 464

原创 在有序旋转数组中找到最小值 C++

题目描述有序数组arr可能经过一次旋转处理,也可能没有,且arr可能存在重复的数。例如,有序数组[1,2,3,4,5,6,7],可以旋转处理成[4,5,6,7,1,2,3]等。给定一个可能旋转过的有序数组arr,返回arr中的最小值。基本思路利用二分查找,最坏情况为O(N)的时间复杂度。首先需要知道,如果一个有序数组经过旋转后,最小的值一定是数组中降序的那个位置,其余部分都是升序。同时,数组的第一个元素一定比最后一个元素大。如果没有经过旋转,数组整体都是升序,最小值就是数组的第一个值。if (arr

2020-10-31 17:11:03 179

原创 1到n中1出现的次数 C++

题目描述:给定一个整数n,返回从1到n的数字钟1出现的个数。例如 n=5,1~n为1,2,3,4,5所以1出现的次数为1,返回1;n=11,1~11为1,2,3,4,5,6,7,8,9,10,11。所以1出现的次数是4,返回4。方法一:暴力枚举#include <iostream>using namespace std;int main(){ int n,res=0; cin >> n; for(int i=1; i<=n; i++){ int t

2020-10-30 22:10:21 3025 3

原创 算法竞赛入门经典(第2版)紫书 第二章笔记

习题1-4 正弦和余弦(sin和cos)输入正整数n(n<360),输出n度的正弦、余弦函数值。提示:使用数学函数。#include<stdio.h>#include<math.h>#define PI 3.1415int main(){ int n; double nsin,ncos; scanf("%d",&n); nsin = sin(n*PI/180); ncos = cos(n*PI/180); //正弦sin与余弦cos函数的参数为弧度制,

2020-10-30 10:17:29 378

原创 2020蓝桥杯省赛C/C++B组(第二场)真题及解析

2020蓝桥杯省赛C/C++B组(第二场)真题及解析

2020-10-26 20:28:10 12268 24

原创 二维数组:蛇形填空

蛇形填空【题目描述】在 n * n 方陈里填入1,2,…,n*n,要求填成蛇形。例如n=4时方陈为:10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 【输入】直接输入方陈的维数,即n的值。(n<=100)【输出】输出结果是蛇形方陈。【样例输入】3【样例输出】7 8 16 9 25 4 3【代码】#include <iostream>using namespace std;int a[101][101];int ma

2020-10-19 21:02:33 803

原创 指数计算 C++

指数计算7 月 1 日是建党日,从 1921 年到 2020 年,Communist Party of China已经带领中国人民走过了 99 年。请计算:7 ^ 2020 mod 1921,其中 A mod B 表示 A 除以 B 的余数。#include <iostream>using namespace std;//递归求解int power(int b, int p, int s){ if(p != 0) return (b*power(b,p-1,s)%s); e

2020-10-16 15:19:12 7206

原创 2020蓝桥杯省赛C/C++B组(第一场)真题及解析

本博客是2020蓝桥杯省赛C/C++B组(第一场)真题及详解

2020-10-16 11:36:20 22083 19

原创 广度优先搜索(BFS)C++

广度优先搜索(BFS)宽度优先搜索(BFS,Breadth-First Search)也是搜索的手段之一。宽度优先搜索是先搜索距离初始状态近的状态。也就是说,它是按照开始状态→只需1次转移就可以到达的所有状态→只需2次转移就可以到达的所有状态→……这样的顺序进行搜索宽度优先搜索利用了队列进行计算,队列(Queue)支持push和pop两个操作,数据元素先进先出。其头文件为:#include <queue>例题:迷宫的最短路径题目描述给定一个大小为 N×M 的迷宫。迷宫由通道和墙壁组成

2020-10-12 15:25:35 511

原创 深度优先搜索(DFS)C++

深度优先搜索(DFS)深度优先搜索是搜索的手段之一。它是从某个状态开始,不断转移状态,直到无法转移,然后退回到前一步的状态,继续转移到其他状态,如此不断重复,直至找到最终解。深度优先搜索(隐式的)利用了栈进行计算,栈(Stack)支持push和pop两种操作,数据元素先进先出。例题:Lake Counting (POJ No.2386)题目描述有一个大小为N * M 的园子,雨后积起了水。八连通的积水被认为是连接在一起的。请求出园子里总共有多少水洼?(八连通指的是下图中相对 W 的 * 的部分)

2020-10-12 10:19:35 475

原创 动态规划:最长公共子序列问题 (C++)

动态规划:最长公共子序列问题动态规划的一般步骤:问题结构分析给出两个序列X[n],Y[m],求X[n],Y[m]的最长公共子序列的长度C[n][m]递推关系建立用一个具体的例子来分析序列末尾字符:情况1:X[n],Y[m]末尾字符不同情况2:X[n],Y[m]末尾字符相同先来看情况1:X[n],Y[m]末尾字符不同,情况1有两种可能:(1)去掉Y[m]末尾字符,即C[7][6-1]+0:(2)去掉X[m]末尾字符,即C[7-1][6]+0:所以递归关系为:C[i,j]=

2020-10-11 21:29:23 2395 1

原创 动态规划:0-1背包问题 (C++)

动态规划:0-1背包问题动态规划的一般步骤:问题结构分析递推关系建立自底向上计算最优方案追踪例题 0-1背包问题(题目来源:https://www.acwing.com/problem/content/description/2/)题目描述有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数 N,V,用空格隔开,分

2020-10-10 10:40:15 577

转载 由数据范围反推算法复杂度以及算法内容(转载)

由数据范围反推算法复杂度以及算法内容作者:yxc链接:https://www.acwing.com/blog/content/32/来源:AcWing 著作权归作者所有。一般ACM或者笔试题的时间限制是1秒或2秒。在这种情况下,C++代码中的操作次数控制在 10^7 为最佳。下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择:...

2020-10-09 22:15:54 153

空空如也

空空如也

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

TA关注的人

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