- 博客(17)
- 收藏
- 关注
原创 C++—继承、多态
继承类之间的关系继承:在已有类的基础上创建新类的过程一个 B 类继承A类,或称从类 A 派生类 B类 A 称为基类(父类),类 B 称为派生类(子类)基类和派生类访问控制不论种方式继承基类,派生类都不能直接使用基类的私有成员派生类的生成过程派生类的生成过程经历了三个步骤:(1)吸收基类成员(全部吸收(构造、析构除外),但不一定可见)●在C++的继承机制中,派生类吸收基类中除构造函数和析构函数之外的全部成员。(2) 改造基类成员● 通过在派生类中定义同名成员(包括成员函数和数据
2020-05-20 22:18:19 299
原创 回溯算法——N皇后问题
问题描述在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n皇后问题等价于在n×n格的棋盘上放置n个皇后,任何两个皇后不放在同一行或同一列或同一斜线上。编程要求:找出一个n×n格的棋盘上放置n个皇后并使其不能互相攻击的所有方案。输入输出样例...
2020-05-06 21:36:52 548
原创 背包问题——贪心
问题描述给定一个载重量为M的背包,考虑n个物品,其中第i个物品的重量 ,价值wi (1≤i≤n),要求把物品装满背包,且使背包内的物品价值最大。有两类背包问题(根据物品是否可以分割),如果物品不可以分割,称为0—1背包问题(动态规划);如果物品可以分割,则称为背包问题(贪心算法)。算法分析计算背包问题的贪心算法#include<bits/stdc++.h>usin...
2020-05-06 20:23:05 419
原创 木棒加工问题
问题描述输入输入有多组测试例。输入数据的第一行是测试例的个数T。每个测试例两行:第一行是一个整数n(1≤n≤5000),表示有多少根木棒;第二行包括n×2个整数,表示l1,w1,l2,w2,l3,w3,…,ln,wn,其中li和wi表示第i根木棒的长度和重量。数据由一个或多个空格分隔。输出输出是以分钟为单位的最少准备时间,一行一个。算法分析本题仅仅使用贪心算法是不够的,排序...
2020-05-06 12:17:33 1162
原创 贪心算法
贪心算法的理论基础1.贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,希望得到结果是最好或最优的算法。2.贪心算法是一种能够得到某种度量意义下的最优解的分级处理方法,通过一系列的选择得到一个问题的解,而它所做的每一次选择都是当前状态下某种意义的最好选择。即希望通过问题的局部最优解求出整个问题的最优解。3.这种策略是一种很简洁的方法,对许多问题它能产生整体最优解,但不能保证总是...
2020-05-06 12:16:26 142
原创 分治策略——输油管道问题
问题描述某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n口油井的油田。从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n口油井的位置,即它们的x坐标(东西向)和y坐标(南北向),应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和最小的位置?给定n口油井的位置,编程计算各油井到主管道之间的输油管道最小长度总和。输入第1行是一个整数...
2020-05-04 18:18:11 4074 1
原创 整数划分问题——递归
问题描述整数划分问题是算法中的一个经典命题之一。把一个正整数n表示成一系列正整数之和:正整数n的这种表示称为正整数n的划分。正整数n的不同划分个数称为正整数n的划分数,记作p(n)。正整数6有如下11种不同的划分,所以p(6)=1165+14+2, 4+1+13+3, 3+2+1, 3+1+1+12+2+2, 2+2+1+1, 2+1+1+1+11+1+1+1+1+1输入:6...
2020-05-03 16:20:05 1349
原创 数字三角形——递推算法
如下所示为一个数字三角形。请编一个程序计算从顶到底的某处的一条路径,使该路径所经过的数字总和最大。只要求输出总和。 1、 一步可沿左斜线向下或右斜线向下走; 2、 三角形行数小于等于100;3、 三角形中的数字为0,1,…,99;测试数据通过键盘逐行输入,如上例数据应以如下所示格式输入:573 88 1 02 7 4 44 5 2 6 5输出:30【算法分析...
2020-05-03 15:43:14 376
原创 STL总结
STL(C++标准模板库)一、概述STL由一些可适应不同需求的集合类(collection class),以及在这些数据集合上操作的算法(algorithm)构成STL内的所有组件都由模板(template)构成,其元素可以是任意类型模板即把数据成员通用化STL组件容器(Container) - 管理某类对象的集合迭代器(Iterator) - 在对象集合上进行遍历算法(Algor...
2020-04-28 21:02:31 124
原创 类和对象
类的定义类是对具有相同属性和行为的一类客观事物的概括描述。是用户自定义的数据类型。类的定义包括行为和属性两个部分。属性以数据表示,行为通过函数实现。C++类定义的格式:...
2020-03-17 17:40:41 149
原创 指针和引用
指针和引用——与对象地址相关的复合类型内存地址程序运行时,代码和需要的数据都被存储在内存中内存是有序的字节序列,每个字节都有唯一的地址,使用该地址可以确定字节的位置,用以存储和获取数据直接访问和间接访问通过变量的名字直接访问为程序中定义的变量分配的内存单元,存取变量的值使用变量的内存地址找到存放数据的单元,间接访问其中的内容指针指针的特点指针持有一个对象的地址,称为指针“指向”该...
2020-03-16 19:19:39 208
原创 递归算法
一、递归概念1、程序直接或间接调用自身的编程技巧称为递归算(Recursion)。2、直接或间接调用自身的函数称为递归函数3、它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。二、递归的基本思想问题层层分解把一个不能或不好解决的大问题转化为一个或几个小问题,再把这些小问题进一步分解成更小的小问题。三、递归的关键递归的关键在于找出递归定义和递归终止条件递归...
2020-03-05 21:57:43 541
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人